嗚嗚喔學習筆記: Unity - Deep Foreach Childs Component - 深度搜尋Compoent

搜尋此網誌

2018年1月31日 星期三

Unity - Deep Foreach Childs Component - 深度搜尋Compoent




GetComponentInChildren<Transform>();

這個方法 只會查找到 第一階層的兒子們
但有時候需求是 查找所有子孫 , 包括兒子的兒子 所有人

寫了一個Function 用遞迴的方式去找尋

程式碼 :
private void DeepForeachChildsCompoent<T>(Transform t, Action<T> Find) where T : Component
    {
        foreach (Transform child in t)
        {

            if (child == t)
                continue;

            T target = child.GetComponent<T>();
            if (target != null)
                Find(target);

            DeepForeachChildsCompoent<T>(child, Find);
        }
    }








使用方式: 
   印出所有找到的兒子 的名子 , 
   這裡Transfom 可以用任何其他Component 替代 , 就能過濾出相關的物件
結果: 最終把所有底下的東西 都找出來了 ( 不管多深層的物件都能查出來)


沒有留言:

張貼留言