layout 中添加多个刚体,刚体异常的问题?

物理引擎–这是什么原因?是bug还是操作不当? 继续讨论:

  • Creator 版本: 2.4.6

  • 重现方式:如上面引用的帖子链接,当在layout 中存在多个刚体的时候,刚体位置异常,全排列到第一个位置里

往 layout 里面添加刚体的目的是什么?不用layout不行吗?layout 的使用场景与物理引擎是否冲突了?layout的配置是怎么样的?上传demo有助理解你的问题情况。

不用layout 也可以实现。我手上的图资源是半屏的,需求是在这个半屏上设置好一些不同碰撞障碍,作为可复用的预制体,然后循环铺设这些预制体,实现一个很长的关卡。

layout里面的刚体是用来做什么的?试试先禁用刚体组件,延迟一帧,调用调用刚体的 syncPosition 后再开启。

嗯,通过一些延迟的方法确实能规避这个问题。 TestDemo.zip (380.1 KB) 查看这个demo , 我做了两个预制体,每个预制体上有个物理碰撞组件的节点,把预制体添加到带有layout组件的节点map 上,这个两个预制体里面的物理组件的节点的位置全部偏移了

这样写,物理系统就没有应用到刚体上,你试下,把刚体调整成动态的,看刚体会不会掉落

上面那个有其他问题,换成这个写法。

 start () {
        // init logic
        for (let index = 0; index < this.mapid.length; index++) {
            const element = this.mapid[index];
            let newnode = cc.instantiate(this.item[element])
            newnode.parent = this.mapNode
        }
        
        this.mapNode.getComponent(cc.Layout).updateLayout();
        this.mapNode.children.forEach(node=>{
            let body = node.children[0];
            body.getComponent(cc.RigidBody).syncPosition(false);        
        })
    }

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。