• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

Unity엔진의 GetComponent 기능

23.04.07 15:44 작성 23.04.07 16:11 수정 조회수 399

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

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

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

파스닙님의 프로필

파스닙

질문자

2023.04.08

감사합니다.