위 그림은 유니티에서 제공하는 생명주기 도식인데, 나같은 입문자들이 보기에는 너무 세세한 정보를 담고 있으므로...중요한것만 뽑아서 정리를 해보려한다.
Awake()
Scene이 시작되고, 모든 Monobehavior의 Start()전에 호출된다. Prefab이 초기화되고난 직후다.
|
Start()
첫번째 프레임이 업데이트 되기전에 호출된다. 단, Script의 인스턴스가 활성화 되어있을때만 호출된다. 게임 플레이 중에 Object를 생성한다고해서 Start()가 호출되지 않는다.
|
OnApplicationPause()
게임이 중단되고, 프레임과 프레임 사이에 호출된다. 게임이 중단된 상태를 핸들링하기 위해서 OnApplicationPause이후에 하나의 프레임이 더 있다.
|
FixedUpdate()
Update()보다 대부분 자주 호출된다. 프레임율(Framerate)이 낮으면 Frame하나에도 여러번 호출될 수 있고, 반대로 프레임율이 너무 높으면 프레임과 프레임 사이에도 호출되지 않을 수 있다. 물리 계산, 업데이트는 FixedUpdate 직후에 이루어진다. 프레임율과 관계없이 정확한 간격마다 호출되기 때문에 위치 이동을 FixedUpdate()에서 구현하면 Time.deltaTime을 곱해줄 필요가 없다.
Update()
Frame마다 한 번 호출된다.
|
LateUpdate()
Frame마다 한 번 호출되나, Update()이후에 호출된다. 3인칭 카메라에서 자주 사용되는데, Update()에서 캐릭터가 이동을 하면 LateUpdate()에서 카메라를 움직여주는 식이다.
|
OnDestroy()
오브젝트가 존재하는 가장 마지막 프레임 업데이트 이후에 호출된다. Object.Destroy() 혹은 Scene의 종료에 의해 오브젝트는 파괴된다.
|
OnApplicationQuit()
게임 앱이 꺼질때 호출된다. 에디터에서는 Playmode를 종료할때이다.
'프로그래밍 > Unity' 카테고리의 다른 글
[해결방법] UnityPlayerActivity.java uses or overrides a deprecated API (0) | 2022.09.27 |
---|---|
[Unity] 벡터의 내적 Vector2D, Vector3D (0) | 2021.12.18 |
Unity에서 Oculus 기본 키보드 열기 (0) | 2021.12.11 |
Unity 로그인 창 만들기 - Tab으로 Input field 이동 (0) | 2021.09.21 |
Unity UI for VR (0) | 2021.09.20 |