加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

unity3d 中批量修改Transform中Childs引发的bug

(2017-07-05 10:22:37)
标签:

it

unity3d

setparent

unityexceptiontrans

分类: 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重新赋值。这样的话就不难理解上面出现的问题了。



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有