Programming skills/Unity

[Unity] 생명주기 Life Cycle

제이커브(Jcurve) 2023. 10. 11. 23:50

생명주기(Life Cycle)

클래스를 상속받은 오브젝트가 씬에 있는 동안 일정한 흐름에 따라 함수를 호출하는데 이 패턴의 흐름이 생명주기이다. 

 

그 중 중요흐름도이다.

유니티 생명주기 중요흐름도


Initialization

1. Awake

- 스크립트가 실행될 때 한번만 실행

- 오브젝트 비활성화시 호출되지 않지만 스트립트가 비활성화일경우 호출

- 코루틴으로 실행불가

- 게임의 상태나 변수초기화로 사용

- 오브젝트의 초기화나 프리팹의 인스턴스화가 모두 진행된 직후에 호출되기 때문에 Find함수 호출의 안전성 보장

2. OnEnable

- 객체가 활성화될때마다 호출

- 코루틴으로 실행불가

- 이벤트 연결 시 사용

3. Start

- 스크립트가 실행될 때 한 번만 실행

- 객체가 비활성되면 호출되지 않는다

- 코루틴으로 실행가능

Physics

1. FixedUpdate

- 고정 프레임 주기로 호출되는 함수

- 스크립트가 활성화되어 있어야 호출

2. OnTriggerXXX

- 두 오브젝트간의 충돌 체크를 하는 함수

- 물리연산을 계산하지 않고 통과

3. OnCollisionXXX

- 두 오브젝트간의 충돌 체크를 하는 함수

- 물리영향을 받아 Rigidbody 체크해야한다

4. Update

- 매프레임마다 호출되는 함수

- 최적화나 디바이스 성능에 따라 함수호출시간이 매번 달라짐

- 스크립트가 활성화되어있어야 호출

5. LateUpdate

- 모든 Update함수가 호출된 후 한번씩 호출

- 카메라 이동 로직에 주로 사용

- 스크립트가 활성화되어있어야 호출

Decommissioning

1. OnApplicationQuit

- 응용 프로그램 종료 전 모든 오브젝트에서 호출

2. OnDisable

- 객체가 비활성화될때마다 호출

- 이벤트 연결 종료시 사용

- 코루틴으로 실행 불가

3. OnDistroy

- 오브젝트 생존 기간의 마지막 프레임이 업데이트된후 실행