반응형
유니티 이벤트 함수
- 유니티는 미리 정의된 순서대로 실행되는 이벤트 함수들이 존재한다.
- 종류와 실행 순서(Life cycle)는 다음 페이지 참조
Awake(), Start(), OnEnable()
- Awake
- Scene이 로드될 때 스크립트가 포함된 게임오브젝트가 초기화되거나 비활성화된 게임오브젝트가 활성화 될 때, Instantiate로 생성된 게임 오브젝트가 초기화 된 후에 호출된다.
- 스크립트가 비활성화 되어있을때도 호출이 되며, 게임 오브젝트가 초기화된 후, 단 한번 호출된다.
- 모든 게임오브젝트가 초기화된 후 호출되기 때문에 Find와 같은 함수를 사용하여 안전하게 쿼리할 수 있다.
- 멤버를 초기화할 때 사용된다.
- 호출하는 순서가 정해져있지 않기 때문에 스크립트들 사이에서 Awake전이나 후에 호출되는것에 의존해서는 안된다.
- OnEnable
- 게임오브젝트 또는 스크립트가 활성화될 때마다 호출된다. (1회성이 아님)
- 이벤트 연결시 사용된다.
- Start
- Update가 호출되기 전에 호출되는 함수이다.
- Awake와 마찬가지로 단 한번 호출된다.
- Awake와 달리 스크립트가 비활성화 되어있을때 호출이 되지 않아서 비활성화 된 스크립트에서는 Awake와 동일한 프레임에 호출되지 않을수도 있다.
- 한 객체가 다른 객체에 의존하는 경우에 유용하게 사용할 수 있는 함수이다. (의존하는 객체 초기화는 Start에서 의존되는 객체 초기화는 Awake에서하게되면 안정성이 높아진다.)
- 해당 함수는 코루틴으로 정의가 가능해서 yield문으로 흐름제어가 가능하다.
Update(), FixedUpdate(), LateUpdate()
- Update
- 스크립트가 활성화 되어있을 때, 매 프레임마다 호출된다.
- 게임의 핵심 로직을 작성한다.
- FixedUpdate
- 물리 시스템 주파수에 따라 일정한 주기로 호출된다. (기본설정 기준 0.02초마다 호출됨.)
- 프레임 속도에따라 Update보다 더 많이 호출될 수도 있고 적게 호출될 수도 있다.
- 프레임 속도와 독립적으로 다른 타이머에서 호출되기 때문에 Time.deltaTime을 곱할 필요가 없다.
- LateUpdate
- Update가 호출된 후 프레임마다 한 번씩 호출된다.
- 일반적으로 Update에서 플레이어를 움직이는 계산을 하고, LateUpdate에서 카메라의 계산을 수행하기 위해 사용한다.
반응형
'Develoment > Unity' 카테고리의 다른 글
[유니티] 모바일 제스처 기능(카메라 줌, 이동) 구현 (1) | 2022.03.11 |
---|---|
[유니티] Android 펀치홀, iOS 노치 UI SafeArea 적용하기 (0) | 2022.02.01 |
[유니티] Generic singleton(제네릭 싱글톤) 클래스 제작 (0) | 2022.01.26 |
[유니티] JsonUtility (0) | 2022.01.25 |
[유니티] 타일맵 컴포넌트 배열 가져오기 (0) | 2022.01.10 |