강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

starkshn님의 프로필 이미지
starkshn

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Scene Manager #1

Awake질문

작성

·

334

1

15:27초에서

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

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

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

답변 1

2

Rookiss님의 프로필 이미지
Rookiss
지식공유자

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

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

starkshn님의 프로필 이미지
starkshn

작성한 질문수

질문하기