2015. 7. 10. 16:28ㆍ프로그래밍/Unity
GetComponentsInChildren<T>()
를 이용하여 부모에 속한 모든하위 오브젝트들에 있는 T 컴포넌트를 찾아올수 있다.
그런데 여기서 비활성화 되어있는 오브젝트는 건너뛰는 것이 디폴트 설정 되어있다.
GetComponentsInChildren<T>(bool disenableObjFind = false) 처럼 되어 있는듯...
그래서... 하위오브젝트중 꺼져있는 것도 포함하여 모두 검색하려면
빈 괄호 안에 true를 넣어주면 된다.
GetComponentsInChildren<T>(true);
이 옵션은 유니티 FInd류의 함수들 은 공통사항인것 같다.
=================15.09.07 추가====================
이름으로 비활성 게임오브젝트를 찾는 하드파인드..
static public GameObject GameObjectHardFind (string str) {
GameObject result = null;
foreach ( GameObject root in GameObject.FindObjectsOfType(typeof(Transform)) ) {
if (root.transform.parent == null) { // means it's a root GO
result = GameObjectHardFind(root, str, 0);
if (result != null) break;
}
}
return result;
}
static public GameObject GameObjectHardFind (string str, string tag) {
GameObject result = null;
foreach ( GameObject parent in GameObject.FindGameObjectsWithTag(tag) ) {
result = GameObjectHardFind(parent, str, 0);
if (result != null) break;
}
return result;
}
static private GameObject GameObjectHardFind (GameObject item, string str, int index) {
if (index == 0 && item.name == str) return item;
if (index < item.transform.childCount) {
GameObject result = GameObjectHardFind(item.transform.GetChild(index).gameObject, str,0);
if (result == null) {
return GameObjectHardFind(item, str, ++index);
} else {
return result;
}
}
return null;
}
'프로그래밍 > Unity' 카테고리의 다른 글
프리팹 의 복사 수정 ( copy - modify ) (0) | 2015.10.16 |
---|---|
Unity에서 Prefab 연결끊기 (0) | 2015.08.25 |
Audio Clip 이펙트음 설정 관련 주의사항 (0) | 2015.07.06 |
Unity에서 Transform을 이용하여 LocalPosition <-> Global position 벡터 크기를 변경하는 팁. (2) | 2015.06.04 |
UITexture의 모양 변형하기 ( 둥근 라운드형 ) (4) | 2015.01.30 |