我试图从父对象中获取具有某个标记的所有孩子。
例如,如果父对象有20个子节点,并且它们的标记可以在两个标记之间切换,我想知道有多少标记。
我想通过鼠标点击来实现。我尝试过使用transform.childCount
和FindGameObjectsWithTag()
,但我没有运气。
有任何建议或指示吗?
答案 0 :(得分:1)
public static class Ext{
public static int ChildCountWithTag(this Transform tr, string tag, bool checkInactive = false)
{
int count = 0;
Transform [] trs = tr.GetComponentsInChildren<Transform>(checkInactive);
foreach(Transform t in trs){
if(t.gameObject.CompareTag(tag) == true) { count++; }
}
return count;
}
}
然后你把它称为:
void Start(){
int result = this.transform.ChildCountWithTag("Tag");
int resultB = this.transform.ChildCountWithTag("OtherTag", true);
}
第一个返回给定标记的活动数量,第二个标记包含非活动标记的子节点数。