[Unity] Find 함수

Flaming Bun·2025년 7월 21일

Unity

목록 보기
33/39

참고 사이트 : https://docs.unity3d.com/kr/560/ScriptReference/GameObject.Find.html

Find 함수

유니티에서 오브젝트를 찾을 때 사용하는 함수로 주로 GameObject.Find() 처럼 사용한다.


GameObject.Find()

이 함수는 활성화된 GameObject만 반환하고 GameObject를 찾지 못하면 null을 반환한다.

또한 이름에 '/'가 포함되어 있으면, 계층 구조를 따라 탐색한다.


Transform.Find()

이름으로 자식 오브젝트만 찾고 손자는 탐색하지 않는다.

이름에 / 문자를 통해서 손자를 찾아갈 수 있다.

ex: gun.transform.Find("magazine/ammo")


Find 함수 사용을 자제해야 하는 이유

Find 함수 사용을 자제해야 하는 이유는 성능 저하 때문이다.

Find 함수를 사용하면 씬에 있는 모든 오브젝트를 순회하며

이름이 일치하는 오브젝트를 찾으므로 오브젝트가 많아질수록

속도가 매우 느려지며 반복적으로 호출하면 프레임 드랍이 발생할 수 있다.


Find 함수를 반복해서 사용하지 않으려면 ?

한 번 오브젝트를 찾으면 캐싱해서 사용하는 것이 성능에 좋다.


비슷한 함수

GameObject.FindWithTag : 지정한 태그가 붙어있는 활성화된 GameObject 중 하나를 반환한다. 없으면 마찬가지로 null을 반환한다.

0개의 댓글