Unity 中 GetComponentsInChildren 的应用

在实际项目中,我们经常要去查找一个节点下的某个子节点,但是子节点太多,或者每次我们都要去自己写GameObject.FindChald("xxx")实在是太过繁琐,那么这是后就可以用GetComponentsInChildren了

,他返回的是要查找的这个节点下的所有子节点和要超找的对象本身的Transform数组,然后我们再用for循环遍历,便可以找到我们想要的了,废话不多说,我们看代码

    public Transform FindChild(Transform parent, string childname)
    {
        Transform child = parent.Find(childname);
        if (child != null)
        {
            return child;
        }

        Transform[] tranArray = parent.GetComponentsInChildren<Transform>(true);
        Debug.Log(tranArray.Length);
        for (int i = 0; i < tranArray.Length; ++i)
        {
            Transform tran = tranArray[i];
            Debug.Log(tran.name);
            if (tran.name == childname)
            {

                return tran;
            }
        }
        return null;
    }

这样,是不是简单了很多,比用迭代一层一层去超找简单,而且也好理解

转载于:https://www.cnblogs.com/lzy575566/p/7686151.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值