작성
·
820
답변 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으로 사용 가능합니다.)