728x90
Awake vs Start
- Awake
- 스크립트와 연결된 GameObject가 인스턴스화 되거나 스크립트가 처음 로드될 때 불림
(인스턴스화 : 유니티에서 오브젝트가 실제로 생성되는 것) - 해당 오브젝트가 OnEnable 상태가 아니더라도 위 조건에 따라 로드되면 호출됨
- Awake에서 다른 오브젝트에 대한 참조를 하게 되면 오브젝트가 생성될 때 반드시 실행되기 때문에 참조를 반드시 생성할 수 있다. 하지만 조심해야될 점은 각 오브젝트의 Awake함수의 호출은 무작위로 되기 때문에 초기화 되지 않은 다른 스크립트의 참조를 통해 접근을 하면 NullReferencException이 발생하게 되기 때문이다.
- Start
- Start 함수는 컴포넌트가 활성화되는 순간 불리게 된다.
- 호출 시기는 Awake 함수보다는 느리지만, 첫 Update보다 빠르다.
- Start에서는 참조를 통해 접근하는 작업이 가능해진다.
OnEnable vs Start
두 가지 함수 모두 컴포넌트가 활성화될 때 불리는 공통점이 있다.
하지만 Start는 활성화될 때 최초 한 번만 불리지만, OnEnable은 활성화될 때 마다 불리게 된다는 차이점이 있다.
따라서 초기화 작업에는 OnEnable 함수를 사용하면 안된다.
오브젝트 풀링과 같은 작업에서 사용할 수 있는 함수이다.
Update vs FixedUpdate vs LateUpdate
- Update : 한 프레임 당 한 번 호출. 이 때, 프레임 간 시간 간격이 일정하지 않기 때문에 실행 주기가 일정하지 않다.
- FixedUpdate : 고정 단위로 불리게 되는 함수. 동일한 간격으로 호출할 수 있기 때문에 물리 계산 등에 사용되는 함수이다.
- LateUpdate : Update 호출 뒤에 불리는 함수. 프레임 당 한 번 호출되는 것은 Update와 동일하다.
728x90
'Unity' 카테고리의 다른 글
[Unity] MonoBehaviour란 (1) | 2024.11.19 |
---|---|
[Unity] 코루틴(Coroutine)과 Invoke (0) | 2024.11.19 |