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

论坛 期权论坛 脚本     
匿名网站用户   2020-12-21 03:19   30   0

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了!!!

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP