인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

파스닙님의 프로필 이미지
파스닙

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

Patrol AI

Unity엔진의 GetComponent 기능

해결된 질문

작성

·

525

·

수정됨

1

CreatureController cc = go.GetComponent<CreatureController>();

if (cc != null)

cc.OnDamaged();

//go는 MonsterController를 가지고 있음


에서 CreatureController를 상속박은 MonsterController의 오버라이드한 함수가 실행되는데

CreatureController cc = go.GetComponent<CreatureController>();

CreatureController cc = new MonsterController;

와 같은 기능이기 때문에 그런걸까요?(UNITY GetComponent의 기능인가?)


만약 그렇다면 분명 GetComponent로 CreatureController를 불렀는데 어떻게 MonsterController가 리턴되었는지도 궁금합니다 GetComponent의 UNITY 내부 엔진 기능인가요?

답변 1

1

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

MonsterController가 CreatureController를 상속 받고 있기 때문이 맞습니다.
GetComponent<T>는 정확히 T를 일치하는 애만 찾는게 아니라,
T를 상속받은 다른 클래스도 찾아줍니다.

CreatureControler cc = new MonsterController() 처럼
new로 만들진 않겠지만 (MonoBehavior는 무조건 AddComponent로 만들어야 합니다)
개념적으로는 비슷합니다.

파스닙님의 프로필 이미지
파스닙
질문자

감사합니다.

파스닙님의 프로필 이미지
파스닙

작성한 질문수

질문하기