기술 면접 준비 - (28~30)

이준호·2024년 2월 26일
0
post-custom-banner

📌 기술면접 준비 (28 ~ 30)



28. Unity 오브젝트가 다양하게 씬에 올라와 있다면 동시에 시작되고 무엇이 먼저 초기화 되는지 알 수 없을 수 있는데, 프로젝트에서 코드를 만들 때 이에 대해 고민하고 해결해본 경험이 있다면 설명해주세요.

저는 초기화 하는 과정들 (GetComponent, 변수에 값 할당) 들을 "initialize" 라는 메서드를 만들어 상황에 따라 "Awake" 와 "Statr" 유니티 생명주기 메서드에서 초기화를 진행하는 것을 규칙으로 하여NullReferenceException 을 최대한 방지하며 초기화 과정이 꼬이는 것을 방지하고 추적하기 쉽게 하였습니다.








29. Update의 종류와 각각 어떤 특징을 가지고 있는지 설명해주세요.

유니티에서 주로 사용되는 Update 메서드로는 Update, FixedUpdate, LateUpdate 가 있습니다.

Update : 매 프레임마다 호출되며, 프레임 속도에 따라 호출간격이 변할 수 있습니다.
대부분의 게임 로직과 사용자 입력 처리에 사용합니다.
FiexedUpdate : 고정된 시간 간격으로 호출되며, 물리엔진 업데이트와 동기화됩니다. 'FixedUpdate' 의 호출 간격은 프로젝트 설정에서 'Fixed Timestep' 값으로 조정할 수 있습니다. (기본값 0.02초(초당50회))
프레임 속도의 변화에 영향을 받지 않아서 물리 연산 처리에 주로 사용합니다.
LateUpdate : 'Update' 메서드가 호출된 후에 호출되며, 프레임당 한 번 호출됩니다.
카메라 추적 로직에 주로 사용됩니다. 'Update'에서 이동시킨 후, 'LateUpdate' 에서 카메라가 오브젝트를 따라가도록 설정 할 수 있습니다.








30. 서로 다른 성능을 가진 기기에서 Update 사용 시 주의할 점에 대해 설명해주세요.

서로 다른 성능을 가진 기기에서 'Update' 사용 시 주의해야할 점으로는 프레임 속도의 변화에 대해 독립적이 로직을 구현하는 것입니다. 'Time.deltaTime' 을 사용하여 이동이나 애니메이션과 같은 업데이트를 프레임 속도와 상관없이 일관되도록 만들어야 합니다. 또한 성능이 무거운 작업은 'Update' 에서 최대한 자제하고, 필요한 경우 비동기 처리를 이용하여 성능 저하는 방지할 수 있습니다.

profile
No Easy Day
post-custom-banner

0개의 댓글