Find() 관련 메서드와 종류

옙권·2025년 3월 7일

유니티에서 특정 게임 오브젝트(GameObject)나 컴포넌트를 찾는 데 사용되는
다양한 Find() 관련 메서드가 있다. 이걸 참조(Reference)라고도 한다.

1. GameObject.Find(string name)

  • 특정 이름을 가진 게임 오브젝트를 찾는다.

ex)
GameObject enemy = GameObject.Find("Player");

  • "Player"라는 이름을 가진 게임 오브젝트를 찾아 반환한다.
  • 씬(Scene)에 활성화된 오브젝트만 검색 가능하다.
  • 찾지 못하면 null을 반환한다.
  • 비효율적이라 자주 호출하면 성능 저하가 발생할 수 있음.

2. GameObject.FindWithTag(string tag)

  • 특정 태그를 가진 게임 오브젝트를 찾는다.

ex)
GameObject enemy = GameObject.FindWithTag("Enemy");

  • "Enemy" 태그를 가진 하나의 게임 오브젝트만 찾는다.
  • 같은 태그를 가진 여러 개의 오브젝트가 있다면 첫 번째 오브젝트만 반환한다.
  • 해당 태그를 가진 오브젝트가 없다면 null을 반환한다.
  • 태그를 활용하면 Find()보다 성능이 더 좋다.

3. GameObject.FindGameObjectsWithTag(string tag)

  • 특정 태그를 가진 모든 게임 오브젝트를 찾음

ex)
GameObject[] enemies = GameObject.FindWithTag("Enemy");

  • "Enemy" 태그를 가진 모든 게임 오브젝트를 배열로 반환한다.
  • 배열을 반환하므로 여러 개의 오브젝트를 처리할 때 유용하다.
  • 단, 게임 오브젝트가 많아지면 성능 문제가 생길 수 있다.

0개의 댓글