GetComponent<T>()는 Unity에서 특정 컴포넌트를 가져오는 함수다.
게임 오브젝트에 붙어있는 컴포넌트를 검색하고 가져오는 역할을 한다.
T는 가져오려는 컴포넌트의 타입을 나타낸다.
이 함수를 호출하면 지정된 타입의 컴포넌트를 찾아오는데
만약 컴포넌트가 없을경우 null을 반환한다.
Rigidbody rb = GetComponent<RigidBody>();
SpriteRenderer sr = GetComponent<SpriteRenderer>();
부모 또는 자식 오브젝트를 포함해서 컴포넌트를 가져올때는
GetComponentInParent<T>() : 부모 오브젝트 포함
GetComponentInChildren<T>() : 자식 오브젝트 포함
를 사용하면 된다.
Rigidbody rb = GetComponentInParent<RigidBody>();
SpriteRenderer sr = GetComponentInChildren<SpriteRenderer>();
TryGetComponent(out T component)
bool TryGetComponent(out T component)
컴포넌트가 있으면 true / 없으면 false를 반환한다.
GetComponent 이후 null 검사를 해야할때 사용하면 좋다.
GetComponent<T>()는 실행할 때마다 컴포넌트를 검색하기 때문에
반복적으로 호출하하면 성능이 저하될수 있다.
GetComponent를 호출할때마다 GC를 발생시킨다고 배웠다.
나중에 더 자세하게 공부해봐야지
암튼 자주 쓰면 성능에 안좋다는건 확실하다!
따라서 자주 써야하는 컴포넌트가있다면 Awake() 나 Start()에서 미리 캐싱하자!