유니티 메시지 이벤트 함수 란?

  • 유니티가 보내는 메시지에 반응하는 함수
  • 포함할 경우 유니티 메시지에 반응하지만, 포함하지 않을 경우 무시한다.
  • 스크립트는 유니티 엔진이 보내는 메시지에 반응하여 자신의 행동을 정의한다. 

Awake 함수

 

  • 생성자와 비슷한 함수이며, 스크립트가 씬에 포함되어 있을 때 1회만 호출되는 함수
  • 스크립트가 비활성화된 상태여도 인스턴스 시 1회 호출되며
  • 만약 스크립트를 포함한 게임오브젝트 자체가 비활성화 상태인 경우 호출되지 않으며
  • 게임오브젝트가 활성화될 때까지 기다렸다가 활성화되면 호출해 준다.
  • 대표적으로 자신의 컴포넌트 혹은 클래스의 필드를 초기화하는 함수로 사용한다.

OnEnable 함수

 

스크립트가 활성화되는 경우 함수 호출하는 함수 비활성화에서 활성화될 시에 호출한다.

 

OnDisable 함수

 

스크립트가 비 활성화되는 경우 함수 호출하는 함수 활성화에서 비 활성화 될 시에 호출한다.

 

Start 함수

 

  • 씬에 미리 스크립트 활성화 된 경우 첫 번째 프레임 업데이트 전에 1회 실행되는 함수이다.
  • 시작 시 스크립트가 비활성화 상태였다면 활성화시 1회 호출해준다.
  • 동적으로 생성된 인스턴스된 스크립트는 생성시 Start함수를 호출하지 않는다.
  • 게임오브젝트의 스크립트는 누가 먼저 호출되는지는 알수 없지만.
  • 모든 오브젝트의 스크립트는  Awake를 호출이 다 되고나서 Start가 호출된다.
  • 대표적으로 Start 함수에선 다른 인스턴스의 참조를 가져오는 함수로 사용한다.

 

Update 함수

 

1프레임 당 1번 호출되는 함수이다. 실행중 반복적인 일을 수행할떄 사용한다.

컴퓨터마다 사양이 다르기 때문에 초당 프레임 수가 다를 수 있다.

그래서 그 프레임 간격을 계산하여 보통 프레임마다 동작을 수행할때에는 Time.deltaTime을 곱하여 보간한다.

 

LateUpdate 함수

 

씬의 모든 게임오브젝트의 인스턴스 Update함수가 진행된 후 프레임당 1번 호출하는함수

예시로 캐릭터 이동을 다완료한 상태에서 카메라를 뒤 따라가게끔 하고싶을때 사용할수있다.  

 

FixedUpdate 함수

 

  • 앞서 두 Update랑은 다른함수이다. 위에 2개의 Update함수는 프레임마다 호출되는 방면
  • FixedUpdate는 프레임속도와 관계없이 신뢰할 수있는 타이머에서 호출된다.
  • 프레임 속도가 낮은경우 프레임당 여러 번 호출될 수 있으며
  • 프레임 속도가 높은 경우 프레임 사이에 호출되지 않을 수있다. 
  • 타이머로 호출되는 경우라 물리 기반의 기능을 수행할때 적합하며 
  • 움직임을 계산할때 Time.deltaTime을 사용할필요가없다.