이벤트 함수의 실행 순서 - Unity 매뉴얼 (unity3d.com)
[유니티 기초] 유니티 생명주기 (Life Cycle) (tistory.com)
유니티의 생명주기: 사용자가 호출하지 않아도 호출되는 함수들의 호출주기
그냥 하나하나 써보면서 이해를 해보도록 하자.
1)초기화
-0.Reset: 객체의 속성을 초기 값으로 설정해줄 때 사용
-1.Awake: 스크립트 실행될때 최초로 한번만 실행 (모든 오브젝트가 초기화된 후 호출되기 때문에
GameObject.Find같은 명령문 안전하게 사용 가능 / Coroutine 사용 불가)
-2.Start:업데이트 시작 직전 최초로 실행
* Awake VS Start
Awake 함수는 비활성화 상태에서도 호출 / Start 함수는 활성화 상태일때만 호출됨
=> 두 상관관계 고려해서 초기화작업 진행 가능
Awake -> OnEnable -> Start
1.5)활성화
-1.OnEnable : 게임 오브젝트가 활성화 되었을 때(킬 때)
2)물리 연산
-1.FixedUpdate :물리 연산 업데이트 (고정된 실행주기. CPU 부하 발생)
(ex)용사가 사냥을 하러 이동)
3)게임 로직
-1.Update:게임 로직 업데이트(물리 연산 제외한. 환경에 따라 실행주기가 떨어질 수 있음. 일정 x)
(불규칙한 함수이기 때문에 충돌 검사가 제대로 안 될 수 있음.)
=> 주기적으로 호출되지 않으면서 조정이 필요한 대부분의 기능이 여기서 구현됨
(1프레임 완료하는데 걸리는 시간=> Time.deltaTime 통해 확인 가능)
-2.LateUpdate:모든 업데이트 끝난 후
(후처리 ex)경험치 획득/카메라 이동 Update와 같은 횟수로 실행됨)
FixedUpdate -> Update -> LateUpdate 순...
FixedUpdate 는 프레임 일정하지만 Update는 일정하지 않음
3.5)비활성화
-1.OnDisable:게임 오브젝트가 비활성화 되었을 때 실행 (Coroutine 사용 불가)
4)해체
-1.OnDestroy: 게임 오브젝트가 삭제될 때 실행됨. (Awake와 반대)
(Object.Destroy 또는 씬 종료시)
-2. OnApplicationQuit : 응용프로그램 종료 전 모든 오브젝트에서 호출됨.
에디터에서는 플레이 모드 중지하면 나타남
다른 씬 호출 시 : Ondisable -> Ondestroy -> Awake...
'CS > C# & Unity' 카테고리의 다른 글
직렬화와 역직렬화 (1) | 2023.12.12 |
---|---|
스태틱 게임오브젝트와 배칭 (0) | 2023.10.01 |
드로우콜과 배치 (0) | 2023.10.01 |
[C#]박싱 언박싱 (0) | 2023.09.27 |
[Unity]코루틴과 스레드의 차이 (0) | 2023.09.23 |