在Unity中获得一个物体的所有子物体包括孙物体。
Posted 阶梯之上
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Unity中获得一个物体的所有子物体包括孙物体。相关的知识,希望对你有一定的参考价值。
看API时想到了这个问题,如何获得一个物体的所有子物体,在Unity的API有这个函数 Component.GetComponentsInChildren 获取子物体组件列表。
首先是在Unity软件中创建了如图的物体。
然后创建了一个C#脚本,并把脚本拖到GrandFather物体中。
using UnityEngine;
using System.Collections;
public class FindObject : MonoBehaviour
public Transform[] grandFa;
// Use this for initialization
void Start ()
grandFa = GetComponentsInChildren<Transform>();
foreach (Transform child in grandFa)
print(child.name);
// Update is called once per frame
void Update ()
点击运行会出现如下结果。
这样就可以查找到一个物体中的所有子物体了。
但是,另一个问题又来了。
如果我不激活某个物体,会怎样呢
首先,先把其中一个物体的Inspector面板的对头去掉,在这里我把Father的对头去掉
然后重新运行会得到如下结果。
这样会看到其中的Father物体及其子物体并没有打印出来。
但是我们怎么让未激活的物体及其子物体也打印出来呢?
只需要在
grandFa = GetComponentsInChildren<Transform>();//括号里面加个true就好了。
grandFa = GetComponentsInChildren<Transform>(true);
这样就能完美解决了,各取所需吧。
以上是关于在Unity中获得一个物体的所有子物体包括孙物体。的主要内容,如果未能解决你的问题,请参考以下文章