728x90
유니티 생명 주기
Unity에서 MonoBehaviour 스크립트는 다양한 생명주기(Lifecycle) 콜백 함수를 제공한다.
이 함수들은 특정 타이밍에 자동으로 호출되며, 주로 객체의 초기화, 게임 루프에서의 반복 실행, 충돌 처리, 파괴 등과 관련되어 있다.
아래는 MonoBehaviour 생명주기 콜백 함수의 실행 순서와 각 함수의 간단한 설명이다.
자세한 이미지와 설명은 Unity Documentation을 참고하자.
https://docs.unity3d.com/kr/2021.3/Manual/ExecutionOrder.html
이벤트 함수의 실행 순서 - Unity 매뉴얼
Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다.
docs.unity3d.com
✅ 초기화 함수
1. Awake()
- 호출 시점: 스크립트 인스턴스가 로드될 때 (활성화 여부와 관계없이)
- 용도: 다른 컴포넌트 참조 설정 등 초기화에 사용
- 특징: 오브젝트가 비활성화되어 있어도 호출됨
2. OnEnable()
- 호출 시점: 오브젝트가 활성화될 때마다 호출
- 용도: 이벤트 구독, 타이머 초기화 등
3. Start()
- 호출 시점: Awake() 호출 후, 첫 번째 Update()가 호출되기 직전에 한 번만 호출
- 용도: 초기화 작업 (Awake보다 늦게 호출되므로 다른 오브젝트 초기화 후 접근 가능)
✅ 프레임 루프 관련 함수
4. Update()
- 호출 시점: 매 프레임마다 호출
- 용도: 입력 처리, 움직임 등 프레임 단위 로직
5. LateUpdate()
- 호출 시점: Update() 이후에 호출
- 용도: 카메라 따라가기 등, 다른 오브젝트의 Update()가 완료된 후 처리하고 싶을 때
6. FixedUpdate()
- 호출 시점: 일정한 시간 간격마다 호출 (물리 연산 전)
- 용도: 물리 연산 관련 처리 (Rigidbody 이동 등)
✅ 물리 관련 함수
7. OnCollisionEnter(Collision collision)
- 충돌 시작 시 1회 호출
8. OnCollisionStay(Collision collision)
- 충돌 중 매 프레임마다 호출
9. OnCollisionExit(Collision collision)
- 충돌이 끝날 때 호출
참고: Trigger 충돌은 OnTriggerEnter, OnTriggerStay, OnTriggerExit 사용
✅ 렌더링 관련 함수
10. OnPreRender()
- 카메라가 씬을 렌더링하기 직전 호출
11. OnRenderObject()
- 씬의 모든 오브젝트가 렌더링된 후 호출
12. OnPostRender()
- 카메라 렌더링이 끝난 후 호출
대부분의 경우 렌더링 콜백은 커스텀 셰이더나 디버깅용으로 사용
✅ 비활성화 및 종료 함수
12. OnApplicationQuit()
- 애플리케이션 종료 전 모든 게임 오브젝트에서 호출.
- 에디터에서 사용자가 플레이 모드를 중지할 때 호출됩니다.
13. OnDisable()
- 오브젝트가 비활성화될 때 호출
14. OnDestroy()
- 오브젝트가 파괴될 때 호출
'개발 > Unity' 카테고리의 다른 글
[Unity3D] 마우스 좌표에 미사일 투하 (2) | 2023.03.13 |
---|---|
[Unity3D] 슈팅 게임 제작 7장 - 적 공격, 사망 이벤트 (0) | 2023.03.02 |
[Unity3D] 슈팅 게임 제작 6장 - 적 캐릭터 구현 (0) | 2023.02.28 |
[Unity3D] 슈팅 게임 제작 5장 - 코루틴, 오디오 (0) | 2023.02.24 |
[Unity3D] 슈팅 게임 제작 4장 - 총 발사 로직(Mac) (0) | 2023.02.22 |