• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Awake질문

21.10.01 00:54 작성 조회수 231

0

15:27초에서

GameScene에서 혹시나 까먹고 Start,Awake를 안써줘도

BaseScene에서 Awake() { init() } 하게되면 작동한다고 말씀하셧는데 그 원리가

BaseScene을 상속받는 아이의 init함수는 BaseScene의 virtual init()과 함께 다같이 실행되기 때문에 그렇게 말씀하신건가요?? 

답변 1

답변을 작성해보세요.

1

원리라기 보단 그냥 유니티 구조가 그렇게 되어 있습니다.
Start, Awake가 가상함수는 아니지만 특수 이벤트 함수입니다.
그리고 상속받은 클래스에서 따로 정의하지 않으면 부모 쪽의 Start, Awake가 호출되는데요.
(ex. GameScene에서 누락해도 BaseScene Awake() 호출됨)

거기서 우리가 내부적으로 가상함수로 만든 Init()을 호출해주고 있으니,
GameScene에서 재정의한 Init()이 호출되는 것이죠.