最近使用GetComponentsInChildren在做游戏获取孩子节点对象的时候遇到了问题,索性就花点时间理解透彻来,省的下次进坑;总结了三种情况,使用需谨慎。
一、能获取到自己的情况
Transform[] trans = GetComponentsInChildren(); 因为root对象以及其6个子对象都有Transform组件,所以获取到的size是7,包含了root自身节点。
二、不能获取到自身的情况
TestComponent[] trans = GetComponentsInChildren(); 此时是在root下面的子对象上挂在了TestComponent脚本(标识作用),这时没有获取到root自身节点
三、获取到孩子的孩子对象的情况
TestComponent[] trans = GetComponentsInChildren(); 此时获取到的结点包含了儿子节点、孙子节点和曾孙子节点,(看数组的顺序,感觉有点像深度优先搜索的遍历方式)。