Unity

[Unity][개념] 오브젝트 찾는 방법 및 Find vs FindChild 차이점

usingsystem 2022. 9. 16. 15:49
728x90

[ 대표적인 함수 ]

 

1. Object를 찾는 방법(전체)

   - 비활성화된 Object는 못 찾음!

1
2
3
4
5
GameObject.Find("이름"); // Object의 이름으로 찾음. 가장 처음에 나오는 Object를 반환.
 
GameObject.FindWithTag("..."); // 태그로 대상을 찾음. 가장 처음에 나오는 Object를 반환.
 
GameObject.FindGameObjectsWithTag("..."); // 태그로 대상을 찾음. 같은 태그를 가진 Objects를 배열의 형태로 반환.

 

2. Object를 찾는 방법(자식)

   - 비활성화 된 Object를 찾을 수 있음!

1
2
3
transform.Find("..."); // Object의 이름을 찾음. 가장 처음에 나오는 Object를 반환.
 
transform.GetChild(...); // 자식을 번호로 찾음. 0번째가 첫 번째 자식

 

3. FindChild("...");도 있는데, 이건 이제 사용되지 않는다. Find로 대체되었다.

   - 예전에는 Find로 비활성화 된 Child를 찾지 못했기에 FindChild를 사용했으나, 이제는 그렇지 않는다.

   - 사용하게되면 "Find("...")를 사용하는게 좋다는 메시지"가 나온다.

 


 Object를 찾을 때에는 크게 2가지 클래스로 나뉘어 찾게 됩니다. GameObject  Transform 이 그것입니다.

 

 GameObject는 일반적으로 전체 오브젝트에서 찾을 때 사용이되며, Transform은 Object에서 부모, 자식관의 관계에 놓인 Object를 찾기위해 사용됩니다.

 

 기본적으로 Transform은 찾길 원하는 Object의 Transform을 얻고 싶을 때 사용하지만, 이를 통하여 GameObject나 Component 모두 얻을 수 있습니다.

 

<GameObject>

 함수 이름 설명 
 Find  오브젝트 이름으로 검색하여 가장 처음에 나오는 오브젝트를 GameObject로 반환한다.
 FindWIthTag  태그 이름으로 검색해서 가장 처음에 나타난 오브젝트를 GameObject로 반환한다.
 FindGameObjectsWithTag
 태그 이름으로 검색해서 나타난 오브젝트 여러개를 GameObject 배열로 반환한다.
 GameObject.FindObjectOfType  오브젝트형(혹은 컴포넌트의 형)으로 검색해서 가장 처음 나타난 오브젝트를 GameObject로 반환한다.
(유효한 오브젝트만)
 GameObject.FindObjectsOfType  오브젝트형(혹은 컴포넌트의 형)으로 검색해서 가장 처음 나타난 오브젝트 여러개를 GameObject 배열로 반환한다.
(유효한 오브젝트만) 

 

<Transform>

 함수 이름 설명 
 Find  Object의 이름으로 자식 오브젝트를 검색해, 가장 처음에 나타난 자식 오브젝트를 반환한다.
 GetComponentInChildren  컴포넌트 형으로 자식 오브젝트를 검색해서 처음 나타난 자식 오브젝트를 반환한다.
 GetComponentsInChildren
 컴포넌트 형으로 자식 오브젝트를 검색해서 나타난 자식 오브젝트들의 배열을 반환한다.
 GetComponentInParent  컴포넌트 형으로 부모 오브젝트를 검색해, 가장 처음에 나타난 부모 오브젝으를 반환한다.
 GetComponentsInParent  컴포넌트 형으로 부모오브젝트를 검색해서 나타난 부모 오브젝트들의 배열을 반환한다.
 Transform.FindObjectOfType  오브젝트형(혹은 컴포넌트의 형)으로 검색해서 가장 처음 나타난 오브젝트를 반환한다.
(유효한 오브젝트만)
 Transform.FindObjectsOfType   오브젝트형(혹은 컴포넌트의 형)으로 검색해서 나타난 여러개의 Object들을 배열의 형태로 반환한다.
(유효한 오브젝트만) 

 


 

 

 

출처 - https://cru6548.tistory.com/5

728x90