주녘공부일지

[Unity] MonoBehaviour Life Cycle (생명주기) 본문

GameDevelopment/[Unity] Class

[Unity] MonoBehaviour Life Cycle (생명주기)

주녘 2023. 9. 5. 16:00

1. Initialization, Editor

- Awake() : 프리팹 인스턴스화 직후에 호출 ( 오브젝트가 활성화 되어야 함 )

- OnEnable() : 오브젝트가 활성화 될 때마다 직후에 호출

- Reset() : 오브젝트에 최초로 스크립트가 연결될 때나 Reset 커맨드 사용 시 호출

- Start() : 활성화된 후 첫 프레임 업데이트 직전에 호출 ( 한번만 호출 )

2. Physics

- FixedUpdate() : Fixed Timestep에 설정된 값을 기준으로 일정 주기마다 호출

-> 프레임에 독립적인 물리연산 등에 쓰임

- StateMachineBehaviour callback : 애니메이션 상태에 따라 호출됨

- OnTirgger ~ : 충돌체가 트리거일 경우 발생되는 이벤트 함수 ( Kinematics, 물리효과 X ) :

- OnCollider ~ : 충돌체가 콜라이더일 경우 발생되는 이벤트 함수 ( Dynamics, 물리효과 O ) :

- yield WaitForFixedUpdate : FixedUpdate 반환 후 호출

3. Input Events

- 마우스, 키보드 등의 이벤트 발생 시 호출

4. Game Logic

- Update() : 매 프레임마다 호출 ( 스크립트 활성화상태에서만 호출됨 )

- yield ~ : Update()가 반환된 후 처리 ( 예외 : WaitForFixedUpdate() - Physics : )

- LateUpdata() : 게임 로직의 함수가 다 호출되고 난 후 게임 로직 파트 마지막에 호출

-> 카메라 등의 어떤 오브젝트를 따라가는 등의 기능에 쓰임

5. Rendering

1) Scene

- OnWillRenderObject : 오브젝트가 표시되면 각 카메라에 한 번 호출

- OnBecameVisible / OnBecameInvisible : 오브젝트가 카메라에 표시되거나 / 표시되지 않을 때 호출

- OnPreCull : 카메라가 씬을 컬링하기 전에 호출

- OnPreRender : 카메라가 씬 렌더링을 시작하기 전에 호출

- OnRenderObject : 모든 일반 씬 렌더링이 처리된 후 호출

- OnPostRender : 카메라가 씬 렌더링을 마친 후 호출

 

2) GUI

- OnGUI : GUI 이벤트에 따라 프레임당 여러 번 호출

6. Pausing

- OnApplicationPause : 일시정지 상태를 가리킨느 그래픽스를 표시하도록 한 프레임이 추가 실행됨

7. Decommissioning

- OnApplicationQuit() : 애플리케이션 종료 직전에 호출

- OnDisable() : 오브젝트가 비활성화되기 직전에 호출되며, 비활성화될 때마다 직전에 호출

- OnDestroy() : 오브젝트가 파괴되기 직전에 호출

 

 

'GameDevelopment > [Unity] Class' 카테고리의 다른 글

[Unity] Coroutine & UniTask ( Coroutine 대체 )  (0) 2023.09.05
[Unity] Animation Blending  (0) 2022.03.23
[Unity] StateMachineBehaviour  (0) 2022.03.23
[Unity3D] Camera  (0) 2022.03.01
[Unity3D] Physics.Raycast (+LayerMask)  (0) 2022.02.24