Unity
[Unity] 라이프사이클
주완짱
2025. 7. 28. 14:50
초기화 단계
- Awake()
- 게임 오브젝트가 활성화되었을 때 가장 먼저 호출.
- 같은 GameObject에 붙은 컴포넌트를 참조하거나, 자신의 상태를 초기화하는 데 적합
- 비활성 상태에서도 실행됨 (SetActive(false)여도 호출됨).
- OnEnable()
- 오브젝트가 활성화될 때 호출.
- Awake 이후 호출되며, 오브젝트가 꺼졌다가 다시 켜질 때마다 호출됨.
- Start()
- Awake 및 OnEnable 호출 후, 첫 프레임 업데이트 직전에 한 번 호출.
- 다른 컴포넌트가 초기화된 이후 실행되므로, 상호작용 설정에 적합.
게임 루프 (매 프레임 호출)
- Update()
- 매 프레임 호출됨.
- 키 입력, 캐릭터 이동 등 일반적인 게임 로직 처리.
- LateUpdate()
- 모든 Update() 실행 후 호출됨.
- 카메라 추적, 애니메이션 후처리 등에 사용.
- FixedUpdate()
- 물리 연산용 메서드.
- 일정한 시간 간격(물리 시간 스텝)으로 호출됨.
- Rigidbody 이동, Force 적용 등에 사용.
렌더링 이후
- WaitForEndOfFrame() (코루틴에서)
- 해당 프레임의 렌더링이 완료된 후 실행되는 코루틴 타이밍.
비활성화 및 종료
- OnDisable()
- 오브젝트가 비활성화될 때 호출.
- OnEnable()과 반대.
- OnDestroy()
- 오브젝트가 파괴될 때 호출.
- 메모리 해제 및 이벤트 해제 등 정리에 사용.
기타 (씬 로딩 관련)
- OnApplicationQuit()
- OnApplicationPause(bool pause)
- 앱이 일시정지될 때 호출됨 (모바일에서 홈버튼 등).
- OnApplicationFocus(bool focus)