목표
- Script에서 Awake와 Start가 호출되는 시점에 대해 이해한다.
MonoBehaviour
- 일반적으로 Script를 생성하면 MonoBehaviour가 상속된 상태로 생성이 된다.
- MonoBehaviour를 상속받은 Script를 실행하면, 미리 정해진 순서에 따라 여러 이벤트들이 실행된다.
- 자세한 내용은 [Script Lifecycle Overview] 페이지를 참고한다.
- 본문에서는 가장 많이 사용되는 Awake, Start, Update가 언제 호출되는지만 알아보도록 한다.
Awake
- 이 함수는 prefab가 생성된 직후 등, Start가 호출되기 전에 호출된다.
- GameObject가 비활성화된 상태에서 시작된 경우, 활성화 시킬때까지 Awake가 호출되지는 않는다.
Start
- Script 인스턴스가 활성화 되면, 첫번째 프레임 업데이트 이전에 호출된다.
- Start함수는 씬에 추가되어 있는 모든 Update가 호출되기 전에 호출된다.
- 다만 GamePaly 중, Instantiated 로 인해 동적으로 오브젝트가 추가된 경우 위 조건을 충족시키지 못할 수 있다.
Update
FixedUpdate
- FixedUpdate는 Update와는 다르게, 신뢰할 수 있는 타이머에 의해 호출된다.
- 이때문에 Time.deltaTime를 곱해줄 필요가 없다.
- FixedUpdate는 호출 이후 모든 물리 연산이 업데이트 된다.