Unity - 이벤트 함수의 실행 순서) 복습을 위해 작성하는 글 2023-05-01
📒 갈무리 - 이벤트 함수의 실행 순서
📌 유니티 스크립트 라이프사이클 플로우차트

📌 Awake
- 게임 오브젝트가 인스턴스화된 직후에 최초 1회만 호출
- 게임 오브젝트가 비활성화되어 있을 땐 호출되지 않았다가, 활성화되는 순간 호출
📌 OnEnable
- 오브젝트가 활성화 직후 호출
- Awake와는 다르게 비활성화했다가 다시 활성화 시 재 호출 가능
📌 Start
- 스크립트 인스턴스(게임 오브젝트 & 스크립트)가 활성화된 경우에 첫 번째 프레임 업데이트 이전에 호출
📌 FixedUpdate
- 프레임 속도가 낮은 경우 프레임당 여러 번 호출될 수 있으며 프레임 속도가 높은 경우 프레임 사이에 호출되지 않을 수 있다.
- 모든 물리 계산 및 업데이트는 FixedUpdate 후 즉시 발생
- FixedUpdate의 움직임 계산을 적용할 때, Time.deltaTime 만큼 값을 곱할 필요가 없음
- FixedUpdate가 프레임 속도와 관계없이 신뢰할 수 있는 타이머에서 호출되기 때문
📌 Update
- 프레임당 한 번 호출
- 프레임 업데이트를 위한 주요 작업 함수
📌 LateUpdate
- Update가 끝난 후 프레임당 한 번 호출
- Update에서 수행된 모든 계산은 LateUpdate가 시작할 때 완료
- 일반적으로 3인칭 카메라에 사용하는데, 캐릭터를 움직이고 Update로 방향을 바꾸게 하는 경우 LateUpdate에서 모든 카메라 움직임과 로테이션 계산을 수행할 수 있다. 이렇게 하면 카메라가 포지션을 추적하기 전에 캐릭터가 완전히 움직였는지 확인할 수 있다.
📌 호출 순서
Awake -> OnEnable ->Reset -> Start -> FixedUpdate -> 코루틴 -> 게임 로직(스크립트) -> LateUpdate -> Scene rendering -> Gizmo rendering -> GUI rendering
💡 TIP
보통 물리 엔진의 정상적인 처리를 위해서는 최소 21~22 FPS가 되어야 한다.