您的位置:首页 > 移动开发 > Unity3D

Unity 关于GetComponentsInChildren 利用扩展方法如何避免获取父物体

2017-05-12 20:29 906 查看
1:相信大家都有用到GetComponentsInChildren这个方法吧?但是再用这个方法的时候,如果GetComponentsInChildre<T>(),

如果父对象和子对象都存在相同的T,那么这个得到的数组也会包含父对象中的T,这个在很多情况下我们是不要的,那么如何解决这个问题呢?





2:解决方法

相信大家要写肯定都会啦,这里我是写了扩展方法(具体C#扩展方法,找度娘啦)

1:首先创建一个MyExtension类,不继承mono(注意static),然后写了一个方法



然后使用





就可以了,不过GetComponentsInChildren有个重载方法,我在这里小提一下

        public T[] GetComponentsInChildren<T>(bool includeInactive);
    这个重载,默认是false,includeInactive=true,那么在获取子对象的时候如果T对象是关闭的仍然可以得到,
如果includeInactive=false, 那么就不会获得关闭的T对象    



 

      


为true的时候





下面我们修改一下自己写的扩展方法(其实没啥修改QAQ)



然后也像原来那么用就行了哈





ok了!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐