Pink Transparent Star

Unity/레트로의 유니티 공부

[ Unity ] GameObject 찾기

채유나 2022. 9. 27. 19:05
728x90

* 본 내용은 레트로의 유니티 게임 프로그래밍 에센스 내용을 기반으로 정리하였습니다.

 

Unity에서 GameObject를 찾는 방법은 여러가지가 있습니다.

그 중 Find에 관련된 내용을 정리해보고자 합니다.

 

< Find사용법 >

https://docs.unity3d.com/ScriptReference/GameObject.Find.html

 

Unity - Scripting API: GameObject.Find

This function only returns active GameObjects. If no GameObject with name can be found, null is returned. If name contains a '/' character, it traverses the hierarchy like a path name. For performance reasons, it is recommended to not use this function eve

docs.unity3d.com

< FindObjectOfType 사용법 >

https://docs.unity3d.com/ScriptReference/Object.FindObjectOfType.html

 

Unity - Scripting API: Object.FindObjectOfType

Object.FindObjectOfType will not return Assets (meshes, textures, prefabs, ...) or inactive objects. It will not return an object that has HideFlags.DontSave set. Please note that this function is very slow. It is not recommended to use this function every

docs.unity3d.com

< FindObjectsOfType 사용법 >

https://docs.unity3d.com/ScriptReference/Object.FindObjectsOfType.html

 

Unity - Scripting API: Object.FindObjectsOfType

This does not return assets (such as meshes, textures or prefabs), or objects with HideFlags.DontSave set. Objects attached to inactive GameObjects are only included if inactiveObjects is set to true. Use Resources.FindObjectsOfTypeAll to avoid these limit

docs.unity3d.com

< FindGameObjectWithTag 사용법 >

https://docs.unity3d.com/ScriptReference/GameObject.FindGameObjectsWithTag.html

 

Unity - Scripting API: GameObject.FindGameObjectsWithTag

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. Close

docs.unity3d.com

함수 이름 설명
Find("오브젝트 이름") 오브젝트 이름을 이용하여 찾음
FindObjectOfType("스크립트 이름") 스크립트 이름을 통해 하나만 찾음
FindObjectsOfType("스크립트 이름") 스크립트 이름을 통해 해당하는 오브젝트를 모두 찾아 배열의 형태로 반환
FindGameObjectWithTag("태그 이름") 태그가 된 오브젝트를 하나만 찾음
FindGameObjectsWithTag("태그 이름") 태그가 된 오브젝트를 모두 찾아 배열의 형태로 반환

 

* 해당하는 오브젝트를 찾기 위해 객체화된 형태로 있어야한다.

* 해당하는 오브젝트를 찾기 위해 활성화가 되어있어야한다.

 

씬에 존재하는 모든 오브젝튼를 검색하여 원하는 타입의 오브젝트를 찾아내는 형태로 처리하는 비용이 매우 크기때문에 Update() 와 같이 프레임마다 호출하는 것은 비효율적이다.

-> 초기에 한번만 실행하는 Start() 메서드에서 사용해야한다.

728x90