Debug 최적화
·
Unity
문제점기존에 사용하는 Debug.Log의 경우 에디터에서 동작하고, 빌드된 프로그램에서도 동작한다.이는 성능 저하로 이어지기 때문에, 빌드전의 해당 Debug Log들을 주석처리 혹은 지워주는 것이 좋다. 해결방안using UnityEngine;public static class Logger{ [System.Diagnostics.Conditional("ENABLE_LOG")] public static void Log(object message_) { Debug.Log(message_); } [System.Diagnostics.Conditional("ENABLE_LOG")] public static void Log(object message, Object con..
유니티 2단점프 구현
·
Unity
Rigidbody.AddForce(Vector3, Mode)의 경우 리지드 바디에 힘을 줘서 움직이기 위한 함수다.같은 힘과 방향을 주더라도 Mode에 따라 다른 결과를 가져오는데, ForceMode2D.Impulse는 충격량을 리지드 바디의 주는 형식으로 주로 타격이나, 폭발처럼 순간적인 힘을 나타내는 데이용된다. 충격량이랑 힘의 크기와 주는 시간을 곱하는 계산이 들어간다. 2단 점프를 구현할때 핵심은 리지드 바디의 Velocity를 Zero로 초기화 해주는 작업이다.같은 힘이라도 내려오는 중에 힘을 받으면 적게 뛰고, 올라가는 중에 힘을 받으면 상대적으로 높게 뛰게 된다.따라서, 2번째 점프를 하는 시점에 Velocity를 0으로 초기화 해주는 코드를 한줄 추가하여 구현하였다.
C# List, ArrayList, Dictionary
·
C#
List 내부적으로 배열을 사용하여 구현되고 같은 타입만 저장할 수 있습니다. 또 Generic으로 구현되어 박싱 언박싱이 일어나지 않아 타입 안정성 보장됨. 단점으로는 내부적으로 배열을 사용하여 구현되기 떄문에 중간에 데이터를 추가, 삽입, 삭제할 경우 배열을 다시 할당하고 복사를 수행하기 때문에 성능 저하가 있을 수 있습니다. 또, 원하는 데이터를 찾을 때 순차적으로 배열을 전부 돌기 때문에 데이터가 많을 수 록 탐색이 비효율적입니다. ArrayList object 타입으로 구성되어 었어, 서로 다른 타입의 데이터를 배열에 저장할 수 있다는 장점이 있으나 단점으로는 박싱 언박싱이 일어나기 때문에 성능 저하가 일어날 수 있습니다. Dictionary Hashtable을 기반으로 Key-Value Pai..
유니티 프로젝트 설계시 고민해야 하는 것
·
메모
1. 상수 사용 고정된 문자라면 상수로 만들어서 사용하기 2. 수동 릴리즈 기능 3. 씬 관리 지금 씬과 이전 씬 정보를 알고 있으면 작업에 편리해짐. 씬에 들어갈 때랑 Exit 를 관리하는 지점이 있으면 전환시 흐름제어가 용이합니다. 4. 로직에서 고정값 제거 테스트에 용이함. 5. UI 코드에 로직 X UI 스크립트에 로직이나 데이터를 저장하는 것은 좋지 않음. 디폴트 값을 0이아닌걸로 만들어 놓고 나중에 디폴트인지 아닌지 파악하기 6.MVC 구조 Model - 데이터 view - UI Controller - 매니저 7. UI 매니저 UI 매니저는 LIST, DIctionary등 컬렉션을 이용한 구조를 고려 8. 프리팹 구조 9. 동적 로딩 맵을 불러올 때 한번에 로딩하지말고. 필요한 맵만 먼저 로딩..
클라이언트 포트폴리오 작성 시 고민해야하는 내용들
·
기타
최신 프로젝트부터 정리 포트폴리오 초반부터 최대한 좋은 인상 전달이 중요함. 초반에 흥미가 없으면 뒷 내용이 잘 안들어옴. 자기소개 간단한 자기소개 너무 어렵게 생각하지 말고 모나지만 않게 정리하면 충분 이름 및 연락처 개발 관련 외부 링크 깃허브, 블로그, 유튜브 ,TIL, 개인 정리 방법(노션, 에버노트) 학력 및 교육내용 전공과 다를 경우 개발 및 게임 분야에 관심을 가지게 된 계기를 고민하기 이전 회사 내용 다룰 수 있는 기술 업무에 도움이 되는 내용들 및 학습한 내용 [프로젝트 설명] 프로젝트 제목 프로젝트 소개 작업 기간 작업 인원 담당 파트 이미지 및 영상 진행 플로우 -> 플로우차트, 와이어프레임 [프로젝트 내용] 개발 부분 제목 및 설명 설명을 통해 어떤 내용인지 전달하여 코드 이해가 더..
유니티 머티리얼 Emission 활성화, 비활성화
·
Unity
Emission이 활성화 되어있는 머티리얼의 접근을 해야합니다. MeshRenderer에 있는 material에 접근해서 Keyward 매서드를 통해 Emission을 활성화 비활성화 할 수 있습니다. 위 코드는 제가 구현한 일정주기로 Light와 Emission을 활성화 비활성화 해주는 스크립트입니다. DisableKeyword("_EMISSION"); 을 통해 이미션을 비활성화 할 수 있습니다. EnableKeyword("_EMISSION"); 을 통해 이미션을 활성화 할 수 있습니다.
유니티 스크립트가 부착이 안될경우
·
Unity
유니티에서 스크립트가 부착이 안되는 경우는 스크립트의 이름과 클래스명이 다른 경우에 생기는게 보편적입니다. 하지만 유니티 자체 오류로 인해 스크립트가 부착이 안될 수 있습니다. 그럴 경우 위처럼 Reimport All을 통해 해결할 수 있습니다. 혹은 문제가 되는 스크립트만 따로 Reimport하는 것으로 해결이 될 수도 있습니다.
[TIL] 2024_02_23
·
TIL
오늘 배운 것 엑셀로 아이템 데이터를 관리할 때 유니티에서 파싱한 이후, 파싱한 데이터를 딕셔너리 타입으로 가지고 있으면 활용하기 좋다. 엑셀로 스프라이트를 가져올 때 해당 이미지의 경로를 따로 적어놓으면 해당 이미지에 접근할 수 있다. 아이템 DB와 상점 DB는 따로 분리해서 관리하는게 좋다. 회고 어느덧 2월 말로 부캠 시작한지도 거의 절반정도 되어가는 것 같다. 좀 있으면 최종 프로젝트도 시작하고 집중하다보면, 금방 수료식이 다가올 것 같다. 게임 개발을 하겠다고 마음은 먹었을 때가 작년 6월 인데 그동안 나는 얼마나 성장했을까. 이 부트캠프가 끝났을 때 나는 내가 만족할 만큼 실력을 쌓고 취업에 전념할 수 있을까? 그때가 돼야지만 알 수 있겠지만, 솔직히 말하면 그때가서도 실력이 많이 부족할 것 ..