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);
}
'유니티 개발 기술 > 스크립팅 & 프로그래밍' 카테고리의 다른 글
Instantiate vs PrefabUtility.InstantiatePrefab (0) | 2023.10.11 |
---|---|
Update vs FixedUpdate (0) | 2023.07.31 |
이벤트, 이벤트리스너, 이벤트핸들러, 콜백함수의 관계 (0) | 2023.07.29 |
Analytics 클래스의 다양한 함수와 프로퍼티 (0) | 2023.07.27 |
Dictionary (0) | 2023.07.27 |