
본 글의 내용은 저자 : 석윤경 , 『이토록 쉬운 유니티 게임 프로그래밍』, 루비페이퍼 를 참고하였음.
책을 보면서 다시 유니티의 Find 관련 함수를 배우고 있었다.
Findpublic GameObject findCamera1; // 메인 카메라를 검색해서 담을 변수1 (부모 오브젝트 용)
findCamera1 = GameObject.Find("Main Camera");
//게임 오브젝트 중 "Main Camera" 라는 이름으로 검색해 변수에 할당
Find (자식 오브젝트는 transform으로 컴포넌트에 속한다)
일단 유니티의 Main Camera 오브젝트를 하나 복사하여 'Cube' 라는 오브젝트의 하위(자식)에 넣어주었다.
public GameObject findCamera2; // 메인 카메라를 검색해서 담을 변수2 (자식 오브젝트 용)
//자식 오브젝트중 Main Camera를 검색 한후, GameObject 컴포넌트를 가져와 변수에 할당
//현재 Main Camera는 Cube의 자식 오브젝트이기에 'Transform' 판정이다.
findCamera2 = transform.Find("Main Camera").gameObject;
//트랜스폼 상태인 메인카메라를 검색 하여,
//Gameobject 컴포넌트를 가져와 Gameobject형 변수(findCamera2)에 할당.
이런 식으로 검색하여 저장하는 과정을 배웠다, 흥미롭다.
🍳 FindGameObjectWithTag()
위 메서드의 인수에 오브젝트의 Tag 를 지정하면 해당 태그를 가진 오브젝트를 찾아준다. (즉, Tag 검색 기능이란 것)
다만 같은 씬 내에서 + 오브젝트에 검색 할 특정 태그가 부여 되어있어야 함.

Cude 라는 오브젝트의 Tag 화면
Main Camera 오브젝트는 기본적으로 MainCamera 태그가 붙어있기에 태그 검색 연습에 활용해보기로 함.
public GameObject findCamera3;
// 위와 동일한데, FindGameObjectWithTag() 함수에 쓸 변수 (태그 검색)
//Main Camera라는 이름을 태그로 검색해 변수에 할당
findCamera3 = GameObject.FindGameObjectWithTag("Main Camera");
// ! 태그명 띄어쓰기 주의.

플레이 해보니 잘 검색되어 할당된 모습.
🍳 FindObjectOfType()
컴포넌트의 타입 검색.
T에 어떤 컴포넌트를 검색 할 지 명시하면 해당 컴포넌트를 검색하여 반환 한다.
단독의 or 수가 적은 특정 컴포넌트를 검색 할 때 좋다고 한다.
모든 오브젝트가 보유한 컴포넌트(gameObject, Transform)를 검색해버리면
전부 불러와 버리기에 검색의 의미가 없어지기 때문.
public Light DLlight2; // Directional Light의 Light 컴포넌트를 담을 변수, FindObjectOfType<T>() 컴포넌트 타입 검색용
---
//Directional Light의 Light 컴포넌트를 가져와 변수에 할당.
DLlight2 = FindObjectOfType<Light>(findCamera1);

플레이 해보니, FindObjectOfType<T>() 함수를 통해 잘 불러와진 것을 알 수 있었다.