작성
·
882
답변 1
0
MonoBehaviour를 상속 받았기 때문입니다.
기본적으로 MonoBehaviour는 Component이고,
Component는 GameObject에 붙이는 부품을 이야기합니다.
GetComponent 함수가 특정 게임오브젝트에 있는 Component 를 가져오는것인 줄 알고 사용했는데 위 코드는 왜 동작하는지 이유를 알려주실 수 있을까요?
GetComponent는 특정 GameObject에 붙어있는 Component를 갖고 오는 함수가 맞는데요.
그러니 원래라면 gameObject.GetComponent<SingleTonTest>(); 이렇게 하는게 맞겠죠.
하지만 이렇게 자주 활용되는 기능들은 편리하게 사용할 수 있는
다양한 헬퍼 함수들로 만들어 놓았는데요.
Component 코드에서 사용하는 GetComponent도 비슷한 맥락입니다.
(즉 사실상 gameObject.이 생략되어 있다고 생각해도 무방합니다)
실제 코드는 아래와 같습니다.이와 유사하게 더더더더 자주 사용되는 Component인 Transform의 경우,
GetComponent<Transform>을 이용해도 되지만 그냥 바로 transform으로 접근해도 됩니다.
(GameObject/Component 내에서 동일하게 transform으로 사용 가능합니다.)