Awake
인스턴스 직후, 게임 오브젝트가 활성화 상태라면, 스크립트의 enable과 관계없이 최초1회 호출됨.
OnEnable
스크립트가 enable라면 게임오브젝트의 활성화 직후에 호출됨.
한 오브젝트의 OnEnable은 Awake 보다 반드시 뒤에 호출되지만
다른 오브젝트의 Awake 보다는 빠를 수 있다.
[🌍 Unity/유니티 엔진 동작 관련] - Unity Instantiate / AddComponent 의 Awake / OnEnable 호출시점
한 프레임에 여러번 오브젝트가 꺼졌다가 켜졌다면 그 횟수만큼 발생한다.
[🌍 Unity/유니티 엔진 동작 관련] - Unity의 OnEnable은 프레임 종속일까? / 유니티 라이프 사이클, 호출순서
Start
인스턴스가 활성화되면 첫번째 프레임의 업데이트 전의 호출. 게임 오브젝트가 활성화된 상태에서 스크립트가 enable이라면 최초 1회 호출됨.
FixedUpdate
유니티에서 설정된 Fixed Timestep 시간간격마다 호출됨. CPU나 GPU병목에 의해 프레임이 지연될경우 프레임마다 여러번 호출될 수 있음.
Update
프레임마다 한번 호출됨.
LateUpdate
Update후 한번 씩 호출됨. 즉 Update한번에 LateUpdate 한번으로 1:1 대응됨.
간혹 FixedUpdate끝날 때 따로, Update끝날때 따로 호출되는지 알고 있는 경우가 있는데
Fixed는 0~n번 호출됨 -> Update 1번 호출됨 -> LateUpdate 1번 호출됨의 구조이다.
Fixed -> Update -> LateUpdate 순으로 호출 되지만 Fixed는 매 프레임 호출되지 않을 수 있으며 여러번 호출되는 경우도 있다.
3인칭 카메라같이 Update에 영향을 받아 변경해야 하는 추적에 적절함.
yield WaitForEndFrame;
OnApplicationPause
게임이 정지상태라면 프레임에 끝에서 호출됨.
OnApplicationQuit
응용프로그램 종료전 모든 오브젝트에서 호출됨.
OnDisable
오브젝트가 비활성될 때 호출됨.
OnDestroy
오브젝트의 생존기간 마지막 프레임의 업데이트 후 호출됨.
> 호출이 보장되지 않는다.
2022.01.14 - [Unity/유니티 엔진 관련] - Unity GameObject의 OnDestroy의 호출은 보장되지않는다.
'🛡️ 기술 면접용 질문들 > 유니티 관련' 카테고리의 다른 글
쿼터니언 (Quaternion) (0) | 2023.03.17 |
---|---|
드로우 콜(draw call), 배치(batch), set pass call, GPU Instancing (0) | 2021.04.22 |
코루틴(Coroutine) vs Invoke (0) | 2021.04.16 |