- Today
- Total
프로그래밍 농장
Starter Asset 스터디 정리 포스팅 [ 전처리기 지시어 (Preprocessor Directive) ] 본문
유니티 개발 중 아래와 같은 전처리기 지시어와 해당 내용들에 대해 알아보고자 한다.
전처리는 컴파일 전에 소스 파일을 정리하여, 정의 된 부분만 컴파일을 한다는 개념이다.
모든 전처리기는 #지시어로 시작한다.
그렇다면 아래 코드의 경우에는 'ENABLE_INPUT_SYSTEM' ==1 && STARTERS_ASSETS_PACKAGES_CHECKED ==1
즉, ENABLE_INPUT_SYSTEM이 참이며 STARTERS_ASSETS_PACKAGES_CHECKED 가 참일경우에,PlayerInput 컴포넌트가 필수적으로 요구된다는 뜻이다.
관련 세부사항은 아래 Unity Docs를 통하여 확인할수있다.
- GetComponent VS TryGetComponent
GetComponent() 메소드는 할당에 성공하거나 실패해도 언제나 GC Allocation이 발생한다.
하지만 TryGetComponent()를 이용하면 GC 걱정 없이 깔끔하게 사용할 수 있으며,
할당 성공 여부를 bool 타입으로 리턴받을 수 있다.
TryGetComponent() 메소드는 유니티 2019.2 버전부터 사용할 수 있다.
이전 버전까지는 그대로 GetComponent()를 사용하면 된다고 한다 .
아래 포스팅에서 속도차이와 메모리사용량을 상세히 분석해놓았다.
- Update / FixedUpdate . .
위의 GroundedCheck() 함수는 Update문에서 돌고있다. 해당 함수는 플레이어의 바닥착지여부를 판단해주는 기능을 하며, 위 코드 두줄을 보면된다 .
기본적으로 Update() 에서 Vector연산을 수행하고 FixedUpdate()에서 물리연산을 처리해주는것이 일반적이지만 위 코드에서는 그냥 Update()문안에서 전부처리하였다.
이것에는 여러 이유가 있겠지만, 본인 생각으로는 메모리적이나 속도면에서 큰 차이가 없기때문에 코드의 가독성과 통일성을 위한 코딩이라고 생각한다.
- 플레이어의 Grounded 체크 방식
단순히 LayerMask를 통한 판단이 아닌, CheckSphere의 크기와 같게 그려서 벽에는 닿지않도록 구현하였다.
- Jump & Gravity 에 대한 정리
아래와 같이 Jump 애니메이션을 구현하는 부분과 종단거리 (terminalVelocity)를 Mathf.sqrt(제곱근) 으로 도출하여 CharacterController.Move에 넣어주어 실제 캐릭터를 올려주는 방식으로 구현하였다.
'STARTERS' 카테고리의 다른 글
유데미 스타터스 유니티 1기 취업 부트캠프 - 14주차 학습 일지 (0) | 2022.09.25 |
---|---|
유데미 스타터스 유니티 1기 취업 부트캠프 - 13주차 학습 일지 (0) | 2022.09.18 |
유데미 스타터스 유니티 1기 취업 부트캠프 - 12주차 학습 일지 (0) | 2022.09.11 |
유데미 스타터스 유니티 1기 취업 부트캠프 - 11주차 학습 일지 (0) | 2022.09.04 |
유데미 스타터스 유니티 1기 취업 부트캠프 - 10주차 학습 일지 (0) | 2022.08.28 |