- 기술 면접 예상 질문 - Unity 의 생명주기(Unity Life Cycle)에 대해서 설명해주세요.
기술 면접 예상 질문 - Unity 의 생명주기(Unity Life Cycle)에 대해서 설명해주세요.
Unity의 생명주기 란? Monobehaviour를 상속 받은 클래스를 컴포넌트로 가진 게임 오브젝트들이
생성 ~ 파괴까지 작동되는 내장 메서드 들이다. 대표적으로 오브젝트가 생성 될때 AWake, OnEnable ,Start 메서드가
순서대로 호출되고 생명주기 동안 UPdate,FixedUpdate,LateUpdate 메서드가 호출된다
그리고 파괴될 때 OnDisable이, OnDestroy 메서드가 호출되며 게임 오브젝트가 활성화 비활성화 될 때도 OnEnable, OnDisable가 호출된다.
Start()메서드는 모든 오브젝트의 Awake()가 종료된 후 시작된다는 특징이 있다.
추가적인 부분
결국은 하나의 오브젝트에서는 Awake() -> OnEnalbe() -> Start() 순서로 메서드가 호출된다는 사실을 알 수 있었다.
그런데 Start()메서드는 모든 Awake()가 종료된 시점에 호출되는데 그렇다면 모든 Awake()가 끝나고 서로다른
오브젝트의 OnEnalble() Start()는 같이 실행될 수 있는가? 에 대한 궁금증이 생겼다.
예를 들어 GOA와 GOB 가있을때 모든 Awake()가 종료된 후 GOA는 OnEnable()을 실행하는데 GOB는 OnEnable()이
빨리끝나거나 없어서 Start()를 실행하는 상황
(즉, Start()가 모든 오브젝트의 OnEnable을 기다리는가? )에 대한 부분이였는데,
결론은 Start()와 OnEnable()은 무관하게 실행되며 만약 OnEnable()이 있다면 Start()이전에 호출된다.