1. 정의

- 오브젝트가 활성화(Enable)되고 엑티브(Active) 상태일 때 호출

2. 특징

1) 호출되는 시점

(1) 게임이 시작되고 오브젝트가 Scene에 처음 로드될 때(Awake 직후)

(2) 스크립트 컴포넌트의 체크박스를 켜서 enable = true가 될 때

(3) GameObject.SetActive(true)를 호출해 비활성 오브젝트를 다시 활성화 할 때

(4) Prefab이 Instantiate를 통해 생성될 때

 

2) OnDisable()과 같이 사용

- OnEnable()로 이벤트를 구독했다면 OnDisable()로 이벤트를 구독 해제 해야함

: 오브젝트가 꺼져 있을 때도 이벤트가 호출되어 에러가 발생하는 것(메모리 누수 / Null Reference) 을 방지하기 위함

 

3) 주의사항

(1) 비활성 상태로 시작 시

- 씬이 시작될 때 게임 오브젝트가 SetActive(false) 상태라면 OnEnable() 호출 불가

: SetActive(true) 가 되는 순간 호출

 

(2) Awake() 실행 후 OnEnable() 실행

- Awake() > OnEnable() > Start() 함수 순서로 실행

 

(3) 코루틴과의 연관관계

- OnEnable() 내에서 코루틴 시작 가능

: 단, 오브젝트 자체가 꺼지면(SetActive(false)) 코루틴 정지됨

 

 

728x90

'Unity🎮 > 이론' 카테고리의 다른 글

Canvas Render Mode: Overlay vs Camera  (1) 2026.01.22
유니티의 사이클  (0) 2025.10.28
레이캐스트  (1) 2025.07.14
오디오 소스  (2) 2025.07.14
이벤트 시퀀스 / 코루틴  (1) 2025.07.11

+ Recent posts