[Unity] 2. 비활성화 Object 찾기

Using Unity;
Using C#;
Using Programming;


Null에러는 아주 친숙하죠. Start에서 또 뭘 못찾나봅니다.








유니티 비활성화 Object 찾는 방법입니다.

먼저, 유니티에서 오브젝트를 찾는 방법으로는

GameObject.Find()
GameObject.FindGameObjectWithTag()
GameObject.FindObjectsOfType<>
transform.Find()
transform.FindChild() //최신버전은 안씀 ㅎ
PUBLIC!!!!!!!!!!!!!!!!!!!!!!
[SerializeField]!!!!!!!!!!!

아... 너무도 많아요... 저는 스타일이 박혀버려서 왠만하면 한놈만 씁니다ㅋ




아래 두 녀석은 인스펙터용이고,

위에 녀석들 중 스크립트로 보자면 크게 GameObject와 trasform으로 나뉩니다.





먼저 GameObject와 gameObject는 다르고, Trasform과 trasform은 다릅니다.
대문자로 시작하는 전자의 경우는 Class를 나타내고,
소문자로 시작하는 후자의 경우는 해당 오브젝트 내 getComponent를 나타냅니다.
(무슨 개소리인지 모르겠으나 그래서 개소리를 해줘야 개발자입니다)


즉, GameObject.Find...로 시작할 경우 활성화된 모든 객체를 조사하고,

trasform.Find...는 해당 객체내 자식은 모두 검색합니다.

그렇기 때문에 비활성화 객체는 소분류에서만 조사하게 되버립니다.





결론은........!!!!

GameObject.Find("활성화된 오브젝트").transform.Find("비활성화된 오브젝트").gameObject;

어떻게든 활성화된 객체를 통해서, 자식내에서 찾아야한다는겁니다.
(이럴바에 getChild를 쓰지...)




댓글