[Unity] Awake vs OnEnable vs Start

spixychz·2025년 3월 2일

Unity

목록 보기
4/15

유니티 생명 주기

유니티 생명 주기의 여러 메소드들 중에서 이번에는 Awake, OnEnable, Start. 이 친구들을 집중적으로 살펴보자.

Awake

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


Unity Documentation

OnEnable

(오브젝트가 활성화된 경우에만): 오브젝트 활성화 직후 이 함수를 호출합니다. 레벨이 로드되거나 스크립트 컴포넌트를 포함한 게임 오브젝트가 인스턴스화될 때와 같이 MonoBehaviour를 생성할 때 이렇게 할 수 있습니다.


Unity Documentation

Start

스크립트 인스턴스가 활성화된 경우에만 첫 번째 프레임 업데이트 전에 호출됩니다.


Unity Documentation


의문점

  • 오브젝트 활성화/비활성화에 따른 호출?
  • 컴포넌트 활성화/비활성화에 따른 호출?
  • 반복해서 호출되는가?

실험 결과

  • 순서: Awake -> OnEnable -> Start
  • Awake의 발동 조건
    • 게임 오브젝트가 활성화되어야 한다.
    • 컴포넌트의 활성화 여부는 상관없다.
    • 단 1회만 호출된다.
  • OnEnable의 발동 조건
    • 게임 오브젝트가 활성화되어야 한다.
    • 컴포넌트가 활성화되어야 한다.
    • 두 조건이 모두 만족되었을 때, 반복 실행된다.
  • Start의 발동 조건
    • 게임 오브젝트가 활성화되어야 한다.
    • 컴포넌트가 활성화되어야 한다.
    • 단 1회만 호출된다.
profile
UNITY로 게임 개발하는 사람

0개의 댓글