CS/C# & Unity

유니티 생명주기

혀니리리 2023. 8. 21. 17:49
728x90

이벤트 함수의 실행 순서 - Unity 매뉴얼 (unity3d.com)

 

이벤트 함수의 실행 순서 - Unity 매뉴얼

Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다.

docs.unity3d.com

[유니티 기초] 유니티 생명주기 (Life Cycle) (tistory.com)

 

[유니티 기초] 유니티 생명주기 (Life Cycle)

이 글은 PC 버전 TISTORY에 최적화 되어있습니다. 유니티의 생명주기유니티는 사용자가 호출하지 않아도 호출되는 함수들이 있습니다. 그 함수의 호출 주기를 유니티의 생명주기(LifeCycle)이라고 부

itmining.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...

728x90

'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