• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

base.Init() 질문이 있습니다.

22.04.02 13:17 작성 조회수 215

0

정말 좋은 강의 감사합니다.

unity 강좌를 2번째 보면서 코드를 하나하나 보고 있습니다.

상속성에 대해서 이해가 안가서 질문 드립니다.

UI_Inven에 Init() -> base.Init()을 들어가면 

 부모 UI_Scene에 들어가서

Managers.UI.SetCanvas(gameObject, false); 를 해주는데

gameObject가 왜 UI_Inven이 들어가는지 잘 모르겠습니다.

원래 자식클래스에서 초기화를 하면 부모 클래스의 gameobject가 자식 스크립트(UI_Inven)를 받는 건가요?

답변 1

답변을 작성해보세요.

0

유니티에서 GameObject는 소위 [빈 깡통]이고
Component라는 부품을 줍줍해서 만들어나가는 개념인데요.
대표적인 부품으로 Transform이 있습니다.

어떤 Component이건, 자기가 소속되어 있는 GameObject는 매우 중요한 개념이겠죠!
따라서 Component 클래스에서 [내가 붙어 있는 GameObject]를
'gameObject'을 이용해 빠르게 접근 가능합니다.
마찬가지로 자주 사용하는 transform은
[내가 붙어있는 GameObject의 Transform Component]을 의미하구요.

MonoBehavior 또한 Component를 상속 받았고
UI_Base가 MonoBehavior를 상속 받았으니 gameObject를 사용할 수 있는 것입니다.