센로그
[Unity] Awake(), Start(), OnEnable() 차이 본문
◆ 실행 조건 (GameObject 및 Script활성화 여부)
- Awake()는 GameObject가 활성화된 경우에 실행됨.
- OnEnable()과 Start()는 Script도 활성화된 경우에 실행됨.
예시 1) GameObject와 Script 모두 활성화된 경우
→ Awake(), OnEnable(), Start() 모두 실행
예시 2) GameObject는 활성화, Script는 비활성화된 경우
→ Awake()만 실행
※ GameObject 자체가 비활성화된 경우는 모두 실행되지 않음
※ Awake()와 Start()는 최초 1회 실행, OnEnable()은 Game object가 활성화될 때마다 실행
◆ 실행 순서
Awake() → OnEnable() → Start() 순서로 실행
이후에 Update() 패거리들 실행
참고) https://docs.unity3d.com/kr/2021.1/Manual/ExecutionOrder.html
◆ 게임 도중 Instantiate 할 경우
- Awake()는 인스턴스화된 직후에 호출
- OnEnable()은 스크립트 활성화 직후에 호출
- Start()는 (다음) 프레임 업데이트 전에 호출
'게임 > Unity, C#' 카테고리의 다른 글
[C#] static - Class, Constructor, Field, Method (0) | 2023.07.10 |
---|---|
[C#] Extension Method (확장 메서드) (0) | 2023.07.10 |
[C#] Boxing(박싱), UnBoxing(언박싱) (0) | 2023.07.04 |
[C#] LINQ (Language Integrated Query) (2) | 2023.07.03 |
[Unity] UnityEvent (유니티 이벤트) (0) | 2023.07.03 |
Comments