[C#, 유니티] Unity LifeCycle(생명주기)
2022. 11. 20. 23:17ㆍ코딩 2막 <C#개념편>
728x90
유니티 생명주기
개발자가 짠 소스코드에서 특별히 호출하지 않아도 호출되는 함수들이 있는데
그것을 우리는 유니티 생명주기라고 부른다.
이는 개발자가 정할 수 없는 주기로서, 생명주기에 대한 이해는 필수이다.

초기화 | Awake, OnEnable |
활성화 | OnEnable |
물리 | FixedUpdate |
게임로직 | Update, LateUpdate |
비활성화 | OnDisable |
해체 | OnDestroy |
- Reset : 오브젝트를 생성 후 인스펙터 뷰에서 리셋을 눌러줄 때 실행됩니다. 객체의 속성을 초기 값으로 설정해 줄 때 사용합니다.
- Awake : 스크립트가 실행될 때 한번만 호출됩니다. 모든 오브젝트가 초기화 된 후 호출되기 때문에 GameObject.Find 같은 명령문을 안전하게 사용할 수 있습니다. Awake 함수는 언제나 Start 함수 전에 호출되므로 초기화 순서를 정할 수 있게 합니다. (Coroutine 사용 불가)
- OnEnable : 인스펙터뷰에서 체크를 통해서 게임 오브젝트를 활성화 할 때 사용됩니다. 활성화 할 때마다 호출 됩니다.
- Start : Update 함수가 호출되기 전에 한번만 호출됩니다. 다른 스크립트의 모든 Awake가 모두 실행된 이후에 실행됩니다. 스크립트가 활성화 되어 있어야합니다.
- FixedUpdate : 주로 물리 엔진을 사용하는 경우 일정 시간 간격으로 힘을 가할 때 사용하는 함수입니다. 발생 주기가 일정합니다. (Default : 0.02초)
- Update : 프레임마다 호출되는 함수로 게임의 핵심 로직에 사용됩니다. 스크립트가 활성화 되있어야 사용 가능하고, 주기가 일정하지 않습니다.
- LateUpdate : 모든 Update 함수가 실행되고 나서 호출됩니다. 주로 카메라 이동 로직에 사용합니다.
- OnDisable : 게임 오브젝트 또는 스크립트가 비 활성화 되었을 때 호출됩니다. (Coroutine 사용 불가)
- OnDestroy : 오브젝트 생존기간의 마지막 프레임이 업데이트 된 후 실행됩니다. (Object.Destroy 또는 씬 종료 시)
- OnApplicationQuit : 응용프로그램 종료 전에 모든 오브젝트에서 호출됩니다. 에디터에서는 플레이 모드를 중지하면 나타납니다.
공감해주셔서 감사합니다
728x90
'코딩 2막 <C#개념편>' 카테고리의 다른 글
[C#, 유니티] 동적 라이브러리 (feat. dll) (1) | 2022.11.16 |
---|---|
[C#, 유니티] factoryMethod와 AbstractFactory의 차이 (2) | 2022.11.03 |
[C#, 유니티] 리플렉션(Reflection) (0) | 2022.10.11 |
[C#, 유니티] 클래스 다이어그램 <UML> (0) | 2022.09.26 |
[C#, 유니티] Unity_Git (버전 관리 시스템) (0) | 2022.09.05 |