Unity/C#

-C#- Awake/Start/Update

검은젤리곰 2019. 6. 3. 12:11

유니티 및 C#을 처음 접할 때 스크립트를 생성했을때 가장 먼저 볼 수 있는 함수가 Start와 Update함수일것이다.

Update 함수는 매 프레임마다 실행되는 함수이다.

그렇다면 Start와 Awake함수는 어떤 역할을 하는 함수일까?

두 함수는 언뜻 비슷한 역할을 하는것 같지만 자세히 살펴보면 다른점이 많다.

유니티 도큐먼트를 살펴보면, Start와 Awake는 아래와 같이 서술되어있다.

  • Awake: 이 함수는 항상 Start 함수 전에 호출되며 프리팹이 인스턴스화 된 직후에 호출됩니다. 게임 오브젝트가 시작하는 동안 비활성 상태인 경우 Awake 함수는 활성화될 때까지 호출되지 않습니다.
  • Start: 스크립트 인스턴스가 활성화된 경우에만 첫 번째 프레임 업데이트 전에 호출됩니다.

두 함수 모두 Update함수 호출 이전에 호출되고, 스크립트 라이프사이클중 한번씩만 호출된다는 공통점이 있다.

그리고 두 함수의 가장 큰 차이점은 다음과 같다.

1. Awake함수는 항상 Start함수보다 먼저 호출된다.

2. Start함수는 스크립트가 활성화 되어있는 경우에만 호출된다.