스파르타 내일배움캠프 유니티 7기
면접 질문 모음
Unity
1. Unity 생명주기(Unity Life Cycle)에 대해서 설명해주세요.
- 초기화
- Awake : Start 함수 전에 호출되며, 오브젝트가 인스턴스화 된 직후에 호출된다.
- OnEnable : 오브젝트가 활성화될 때마다 호출된다.
- Start : 첫 프레임 업데이트 전에 호출된다.
Awake -> OnEnable -> Start 순서로 실행됨.
- Update 순서
- FixedUpdate : 고정된 시간 간격으로 호출되며, 모든 물리 계산 및 업데이트는 FixedUpdate 후 즉시 발생된다.
- Update : 프레임당 한 번 호출되고, 프레임 속도에 따라 호출 빈도가 달라진다.
- LateUpdate : Update가 끝난 후 프레임당 한 번 호출 된다.
Update에서 수행된 모든 계산은 LateUpdate가 시작할 때 완료 된다.
- 비활성화 및 종료
- OnDisable : 오브젝트가 비활성화될 때 호출 된다.
- OnDestory : 오브젝트가 파괴되기 직전에 호출 된다.
2. MonoBehaviour 클래스의 주요 메서드와 그 기능에 대해 설명해주세요.
MonoBehaviour 클래스에서 Start와 Awake의 차이점은 무엇이며, 이를 적절히 사용하는 방법에 대해 설명해주세요.
- 차이점
- 실행되는 순서가 다르다 ( Awake는 오브젝트가 초기화 될 때 , Start는 첫 프레임 업데이트 전 호출 )
- 스크립트가 비활성화 되어있을때 Awake는 실행되지만, Start는 실행되지않는다.
Awake는 내부 초기화나 싱글톤 패턴 설정 등에 사용
Start는 다른 오브젝트나 컴포넌트와 상호작용이 필요한 초기화 작업에 사용
3. Update, FixedUpdate, LateUpdate의 차이점에 대해 설명해주세요.
FixedUpdate는 일정 시간 간격마다 호출되고,
Update와 LateUpdate는 한 프레임당 한 번 호출된다.
FixedUpdate는 호출빈도가 일정하지만,
Update 와 LateUpdate는 프레임률에 따라 호출 빈도가 달라지고,
각 업데이트마다 주 용도가 다르다.
FixedUpdate : 물리 연산
Update : 입력 / 일반 로직
LateUpdate : 카메라, 후처리
4. Time.deltaTime이란 무엇이며, 사용하는 이유에 대해 설명해주세요.
Time.deltaTime은 이전 프레임과 현재 프레임 사이의 시간
프레임 속도가 일정하지 않기 때문에 deltaTime을 곱하면 시간 기반으로 일정한 속도를 유지할 수 있다.
5. 코루틴의 동작원리와 사용해본 예시를 함께 설명해주세요.