Unity 关于GetComponentsInChildren 利用扩展方法如何避免获取父物体
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了!!!