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);
}
}
{
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 替代 , 就能過濾出相關的物件
結果: 最終把所有底下的東西 都找出來了 ( 不管多深層的物件都能查出來)
沒有留言:
張貼留言