• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

GetComponent 함수 관련 질문이 있습니다!

23.03.15 01:00 작성 조회수 630

0

질문1.PNG질문2.PNG선생님 언제나 좋은 강의 잘 보고 있습니다.

싱글톤패턴 복습과정 중 이것저거 테스트하다

s_instance에 값을 넣어 줄 때 저렇게 그냥 바로 GetComponent<>(); 해버려도 작동이 되더라구요
GetComponent 함수가 특정 게임오브젝트에 있는 Component 를 가져오는것인 줄 알고 사용했는데 위 코드는 왜 동작하는지 이유를 알려주실 수 있을까요?

답변 1

답변을 작성해보세요.

0

imageMonoBehaviour를 상속 받았기 때문입니다.
기본적으로 MonoBehaviour는 Component이고,
Component는 GameObject에 붙이는 부품을 이야기합니다.

GetComponent 함수가 특정 게임오브젝트에 있는 Component 를 가져오는것인 줄 알고 사용했는데 위 코드는 왜 동작하는지 이유를 알려주실 수 있을까요?

GetComponent는 특정 GameObject에 붙어있는 Component를 갖고 오는 함수가 맞는데요.
그러니 원래라면 gameObject.GetComponent<SingleTonTest>(); 이렇게 하는게 맞겠죠.
하지만 이렇게 자주 활용되는 기능들은 편리하게 사용할 수 있는
다양한 헬퍼 함수들로 만들어 놓았는데요.
Component 코드에서 사용하는 GetComponent도 비슷한 맥락입니다.
(즉 사실상 gameObject.이 생략되어 있다고 생각해도 무방합니다)
실제 코드는 아래와 같습니다.
image이와 유사하게 더더더더 자주 사용되는 Component인 Transform의 경우,
GetComponent<Transform>을 이용해도 되지만 그냥 바로 transform으로 접근해도 됩니다.
(GameObject/Component 내에서 동일하게 transform으로 사용 가능합니다.)