반응형

 

 

 

 

유니티 이벤트 함수

- 유니티는 미리 정의된 순서대로 실행되는 이벤트 함수들이 존재한다.

- 종류와 실행 순서(Life cycle)는 다음 페이지 참조

 

이벤트 함수의 실행 순서 - Unity 매뉴얼

Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다.

docs.unity3d.com

 

 

 

 

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에서 카메라의 계산을 수행하기 위해 사용한다.

 

 

 

 

반응형

+ Recent posts