07
30

GetComponent 함수

프로젝트 씬의 모든 엔티티의 base class인 GameObject 클래스에 정의된 함수이다.
즉, 모든 게임오브젝트에서 사용가능한 함수이다.

주로 스크립트 내에서 다른 컴포넌트에 접근하여 해당 컴포넌트의 속성이나 함수를 활용하는 데 사용된다.

GetComponent 함수는 컴포넌트를 가져오지 못할 경우 null 값을 반환한다.
따라서 컴포넌트를 가져온 후에는 null 값인지 반드시 확인하여 안전한 코드를 작성해야 한다.

 

GetComponent 종류(기본 GetComponent 제외)

GetComponents 함수
: 해당 게임 오브젝트에 연결된 모든 특정 타입의 컴포넌트를 배열로 가져온다.
  여러 개의 컴포넌트를 가져와야 할 때 사용된다.

GetComponentInChildren 함수
: 해당 게임 오브젝트의 자식들 중에서 특정 타입의 컴포넌트를 찾아서 가져온다.
  자식 오브젝트들에 연결된 컴포넌트를 탐색할 때 사용된다.

GetComponentInParent 함수
: 해당 게임 오브젝트의 부모들 중에서 특정 타입의 컴포넌트를 찾아서 가져온다.
  부모 오브젝트들에 연결된 컴포넌트를 탐색할 때 사용된다.

매개변수 의미

GetComponent 함수의 첫 번째 매개변수는 가져오려는 컴포넌트의 타입(Type)을 지정하는 매개변수이다.

이 매개변수에는 가져오고자 하는 컴포넌트의 클래스 타입을 지정해야 한다.

예를 들어, Rigidbody 컴포넌트를 가져오기 위해서는 Rigidbody 클래스 타입을 첫 번째 매개변수로 전달해야한다.
Rigidbody myRigidbody = GetComponent<Rigidbody>();
GetComponentInChildren과 GetComponentInParent 함수에서는
두 번째 매개변수를 bool 타입의 매개변수(includeInactive)로 입력할 수 있는데,
true로 설정하면
비활성화된 자식 오브젝트(GetComponentInChildren)나 부모 오브젝트(GetComponentInParent)에서도
해당 컴포넌트를 찾아 반환한다.
    public Rigidbody[] rb;
    void Start()
    {
        rb = GetComponentsInChildren<Rigidbody>(true);
    }
COMMENT