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 |