Deff_Dev
[Unity] MonoBehavior와 Unity 생명주기 본문
1. Time.timeScale을 0으로 하면 Update와 FixedUpdate는 모두 호출이 되지 않을까요? 그 이유는 무엇일까요?
- Update와 FixedUpdate는 timeScale에 영향을 받기 때문에 호출되지 않는다.
- Time.timeScale을 0으로 설정하면 게임의 시간 흐름이 멈추게 되어, 시간에 의존하는 Update와 FixedUpdate는 실행되지 않는다.
2. Update의 호출주기에 영향을 주는 것은 무엇일까요?
- 컴퓨터의 프레임에 영향을 받는다. (프레임 당 Update 호출)
- 즉, 프레임 당 한 번씩 호출되기 때문에, FPS가 높은 컴퓨터에서는 Update가 더 자주 호출되고, FPS가 낮은 컴퓨터에서는 Update가 덜 자주 호출된다.
- 이를 보정하기 위해 Time.deltaTime을 사용하여 프레임 간의 시간 차이를 반영해 동일한 처리를 하도록 한다.
3. FixedUpdate의 호출주기에 영향을 주는 것은 무엇일까요?
- FixedUpdate는 고정된 시간 간격으로 호출되며, Time.fixedDeltaTime에 의해 결정된다.
- FixedUpdate는 프레임에 영향을 받지 않고 일정한 간격으로 호출되기 때문에, 물리 연산 같은 시간에 민감한 로직을 처리하는 데 사용된다.
4. Awake와 Start, OnEnable의 호출 순서는 어떻게 될까요?
- Awake → OnEnable → Start
5. Unity 생명주기(Unity Life Cycle)에 대해서 설명해주세요.
- 주로, 사용하는 이벤트 함수만 나열하겠다.
- Awake ( )
- OnEnable ( )
- Start ( )
- FixedUpdate ( )
- Update ( )
- LatedUpdate ( )
- OnDisable ( )
- OnDestry ( )
6. MonoBehaviour 클래스의 주요 메서드와 그 기능에 대해 설명해주세요.
- MonoBehaviour 클래스에서 Start와 Awake의 차이점은 무엇이며, 이를 적절히 사용하는 방법에 대해 설명해주세요.
- 공통점
- Awake와 Start는 GameObject가 씬에서 로드될 때, 딱 한번 호출되는 이벤트 함수이다.
- 차이점
- Awake는 스크립트 컴포넌트의 활성화 유무에 상관없이 호출된다.
- Start는 스크립트 컴포넌트가 활성화되어 있다면 호출된다.
- 호출 순서는 Awake → Start 이다.
- 사용법
- 보통 Awake는 본인 오브젝트에 대한 참조를 초기화할 때 사용하고 Start는 다른 오브젝트의 참조를 불러올 때, 사용한다.
- 공통점
7. Update, FixedUpdate, LateUpdate의 차이점에 대해 설명해주세요.
- Update
- 매 프레임마다 호출되는 함수로 불규칙적으로 실행된다.
- FixedUpdate
- 고정 단위마다 호출되는 함수로 규칙적으로 실행된다.
- 주로, 규칙적으로 실행되기 때문에 물리 처리 관련 로직들을 작성한다.
- LateUpdate
- Update 함수가 호출된 후, 호출되는 함수이다.
- 주로, 모든 처리가 다 끝나고 적용시켜야될 기능들을 구현할 때, 사용한다.
- ex) 플레이어를 따라다니는 카메라
8. Time.deltaTime이란 무엇이며, 사용하는 이유에 대해 설명해주세요.
- Time.deltaTime은 이전 프레임이 완료되기까지 걸린 시간을 반환한다.
- 프레임은 매초마다 달라지기 때문에, 모든 프레임 마다 실행되는 Update 함수가 FPS에 상관없이 동일한 처리를 하기 위해 사용한다.
- Update 함수에 1m 씩 이동하는 로직이 있을 때, 100 프레임이 나올 때는 100m를 가게되지만 60 프레임이 나올 땐 60m 밖에 가지 못한다.
- 그렇기 때문에 Time.deltaTime을 이용하여 매 프레임마다 달라지는 처리를 프레임과 상관없이 동일한 처리를 하도록 한다.
'면접 질문 정리 > Unity' 카테고리의 다른 글
[Unity] 게임 수학 (0) | 2024.07.27 |
---|---|
[Unity] JSON과 직렬화 (0) | 2024.07.22 |
[Unity] 최적화 (1) | 2024.07.17 |
[Unity] 코루틴 (1) | 2024.07.16 |