找到所有不同标签的孩子-Unity

时间:2016-02-16 12:02:41

标签: unity3d

我试图从父对象中获取具有某个标记的所有孩子。

例如,如果父对象有20个子节点,并且它们的标记可以在两个标记之间切换,我想知道有多少标记。

我想通过鼠标点击来实现。我尝试过使用transform.childCountFindGameObjectsWithTag(),但我没有运气。

有任何建议或指示吗?

1 个答案:

答案 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);
}

第一个返回给定标记的活动数量,第二个标记包含非活动标记的子节点数。