unity3d 中批量修改Transform中Childs引发的bug
标签:
itunity3dsetparentunityexceptiontrans |
分类: unity3d |
如果要对一个Transform下的所有子节点进行批量操作,比如改变父级或者删除,如何操作才正确呢?
新建场景如下:
http://s5/mw690/006LhVbTzy7coMuA8Zeb4&690中批量修改Transform中Childs引发的bug" TITLE="unity3d 中批量修改Transform中Childs引发的bug" />
现在将Parent1下的所有Image全部移到Parent2下面。
现在有如下方法:
http://s8/mw690/006LhVbTzy7coMK35mn47&690中批量修改Transform中Childs引发的bug" TITLE="unity3d 中批量修改Transform中Childs引发的bug" />
分别将示例图中方法执行一遍,会发现
一。方法1没有转移干净,总是剩2个。
二。方法2会报出UnityException: Transform child out of
bounds的错误。
三。方法3和4则完美完成了需求。
这是为什么呢?因为每当改变了transform中child的index,下一个child的index
会依次减1.也就是说transform会对childs的index重新赋值。这样的话就不难理解上面出现的问题了。

加载中…