find 함수는 컴포넌트를 검색하여 이름을 검색하여 가져오는 것을 말한다.
예를 들어 GameObject.Find() 함수의 인수로 오브젝트 이름을 지정하면 씬 내에서 해당 오브젝트를 찾아 GameObject 타입으로 반환한다.
-Find함수 예시
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class Stury6_find : MonoBehaviour
{
public GameObject findCamera1; // 변수선언
void Start()
{
findCamera1 = GameObject.Find("Main Camera");
// findCamera1에 Main Camera오브젝트를 검색하여 변수에 할당한다.
}
}
위처럼 작성하면 Main Camera 이름으로 된 해당 오브젝트를 찾아 GameObject 타입으로 findCamera1 변수에 할당된다.
따라서 이를 오브젝트에 적용 후 플레이해보면 인스펙터에는 아래와 같은 결과가 나오게 된다.
씬 내의 모든 오브젝트가 아니라 자식 오브젝트 중에서만 검색하고 싶을 때는 Transform 컴포넌트를 사용하면 된다.
(오브젝트의 부모-자식 관계는 Transform 컴포넌트에 속한다.)
-자식오브젝트에서 Find함수 쓰기 예시
이런식으로 부모오브젝트가 Cube이고 자식오브젝트가 Main Camera 일 경우 아래와 같이 스크립를 쓰고 부모오브젝트에 적용한다.
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class Stury6_find : MonoBehaviour
{
public GameObject findCamera2; // 변수선언
void Start()
{
findCamera2 = transform.Find("Main Camera").gameObject;
//자식오브젝트 중 Main Camera를 검색한 후 GameObject컴포넌트를 가져와 변수에 할당한다.
}
}
그런 뒤 플레이해보면 Cube 오브젝트의 인스펙터에 아래와 같이 적용되는 것을 확인할 수 있다.
이때 Find()함수는 Main Camera오브젝트의 transform 컴포넌트로 GameObject 컴포넌트를 findCamera2변수에 할당한 것이라고 볼 수 있다.
728x90
'유니티 C# > C#' 카테고리의 다른 글
C#기초 - FindObjectOfType 함수 사용법 (0) | 2024.04.23 |
---|---|
C#기초 - FindGameObjectWithTag 함수 사용법 (0) | 2024.04.23 |
C#기초 - GetComponent 함수 사용법 (0) | 2024.04.21 |
C#기초 - 반복문 foreach문 사용법 (0) | 2024.04.21 |
C#기초 - 자료형 키워드 var뜻 (0) | 2024.04.21 |
댓글