UE4中删除多个子物体,只能删除一半

来源:互联网 发布:菠萝饭软件怎么样 编辑:程序博客网 时间:2024/06/05 06:52

    UE4中删除多个子物体,只能删除一半,困惑了我2.5个小时


    在UE4中的画布中添加了很多个子物体,子物体的生成是通过一个forloop生成的。

    添加一个按键事件,按下按键,当画布有子物体时,销毁子物体,当画布没有子物体的时候,则添加子物体。

子物体的数量是有一个固定的值,比如是6。

    我遇到的问题是这样的:添加子物体的时候是完全可以的,但是销毁的时候通过forloop来 remove 画布的child (方法:remove child at)就不行了,比如说我添加了6个子物体,但是,remove的时候只能去除其中一半的子物体,测试了好多次,总以为是index错了,所以就打印出index,结果打印出来的index也没错啊,对应的子物体应该也没错啊,但是就是index错了啊,如果没有错的话,怎么可能删除不了呢?!然后,我就没用forloop一个一个的把子物体去删除,结果还是不行,最后突然灵光一闪,是不是因为删除以后,里面的index就减少了一个呢?比如6个子物体,删除一次以后,剩下的index就只有0-4了呢,再删除一次,就只有0-3了呢?如果是这个逻辑的话,直接写删除六个index为0的子物体不久可以了吗?结果我一试,果然做到了大哭,两个半小时啊,一个新手,没有参考资料,也百度不到!也试过Remove child也不行。

但是问题又来了,只有几个子物体还好,如果子物体有十几个,还要一个个列出来嘛?如果用forloop 来做 index从0到0,也就只执行第一步啊,所以这个方法是有局限性的,说晚了这些终于进入主题了,在走了这么多弯路以后,终于一不小心看到了一个方法,clear children 


以下是正文,上面可以不看:

  

 其实就是一个方法:clear children!用了这个方法,父物体的子物体就全部清除,一步搞定!


这也是蓝图编程的一个缺点,也是一个优点,缺点在于,有的方法往往跟代码编程不一样,自己不好根据代码去找,找不到就要耗费很长时间,但是好处就在于如果你要是找到了,记住了这个方法,以后再用的时候马上就可以用,而且比代码少些很多,所以,需要多学,多记。 希望后来的UE4学习者有点帮助吧。





原创粉丝点击