3d物理引擎有碰撞不触发onCollisionEnter

LayaAirIDE 2.6.1beta版本
问题一:onCollisionEnter回调有时不触发,具体请看demo中Bullet中的onCollisionEnter,回调中子弹节点会被移除,但观察结果显示有一些子弹被弹飞,并没有回调onCollisionEnter
问题二:碰撞时在下一帧destroy节点,有时会报错
Uncaught TypeError: Cannot read property 'isTrigger' of undefined
    at PhysicsSimulation._updateCollisions (libs/laya.d3.js:15042)
    at Scene3D._update (libs/laya.d3.js:18977)
    at Stage.render (libs/laya.core.js:16632)
    at Stage._loop (libs/laya.core.js:16572)
    at loop (libs/laya.core.js:10515)
如果问题二没有出现,请把Test.ts第40行的Laya.timer.loop的第一个参数500改成10,问题必现。
已邀请:

NilZ

赞同来自: 1585798773用户

暂时我只能提供一个临时的解决办法,按照如图所示,进行修改引擎库:

碰撞误差.jpg

这个临时的方案是可以避免碰撞检测误判的问题,理论上不会有其他附加的错误(曾经提供给过开发者这个解决方案)。
这个问题我会继续查的,如果这个问题最终得到正确的解决,我会通知你的。
 

12345老虎

赞同来自:

一个刚体只能同时跟一个碰撞触发

1587908692用户

赞同来自:

我也是遇到这个回调的问题

NilZ

赞同来自:

1.碰撞检测误判的问题:我在你的demo中关闭ccd检测之后,这个问题不再出现,你可以暂时先这样处理一下。如果遇到在没有ccd检测的情况下依旧频繁出现碰撞检测误判的情况,你可以接着反馈这个问题。

ccd.jpg

2在脚本中销毁精灵的异常,你可以参考下图所示,进行一下保护:

保护.jpg

 

1585798773用户

赞同来自:

在没有ccd检测的情况下依旧出现碰撞检测误判的情况,重现条件如图所示,将随机方向的值改成固定值
-0.34304213845784504

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作