【有demo】Creator 3D 碰撞检测触发事件的BUG和疑问

BUG:
节点A属性:RigidBodyComponent、ColliderComponent
节点B属性:BoxColliderComponent(勾上了IsTrigger)
节点A已经很明显在B的包围盒内,但是触发事件“onTriggerExit”还是会有几率会触发

疑问:触发事件回调(event: ICollisionEvent)
console.log(event) 这样打印出来的信息里的otherCollider和
console.log(event.otherCollider) 这样打印出来的结果是不一样的

(onTriggerExit事件因为不是100%复现的,麻烦刷新几次,就会看到有onTriggerExit事件的回调打印了)

demo:

test_onTriggerExit.zip (835.5 KB)

具体我也不确定是BUG,但是确实是有点不太正常

感谢反馈,是 1.0.1 版本吗?,猜测原因可能是刚体休眠了,你可以禁止刚体的自动休眠试下

两个打印出来的不一样的原因:
物理事件中的 event 对象是复用的,控制台里面打印的是引用,展开的时候显示的是最新的值,所以可能会不一样

抱歉,忘记说版本,是1.0.1版本
还有官方文档的描述有误:路径:物理-使用碰撞体-碰撞器和触发器


当IsTrigger为true时,不应该是为触发器嘛

感谢勘误,的确是写错了,尴尬:sweat_smile:

禁止休眠是用这段代码嘛,还是编辑器有地方可以勾选,刚刚用了这段代码还是没有起作用
if (rigidBody.isSleeping) {
rigidBody.wakeUp(); // 唤醒
}

有 allowSleep 属性,控制是否允许自动休眠

感谢回答,刚刚试过rigidBody.allowSleep = false;这样设置,但是还是会出现以上问题。。。

相关修复 PR
https://github.com/cocos-creator/docs-3d/pull/161

另外,欢迎 PR 贡献啊

大佬,冒昧问下,PR 是什么意思

PR 是 pull request 的简写,具体可以看下面的文档
https://docs.cocos.com/creator/manual/zh/submit-pr/submit-pr.html

好,了解一下,有能力的话我也希望能贡献点力量。

大佬,碰撞的那个问题是BUG嘛,什么时候可以有修复版本更新到1.0.2

这个问题在最近的重构中已经修复了,但是是在 v1.1 中。
v1.0.2 将会带上避免这个问题的方法,默认开启

是默认开启什么呢,现在v1.0.1版本有什么办法可以解决嘛,设置allowSleep 属性还是不可以

有办法,需要改一行引擎源代码,如下图所示,改完后记得按 Ctrl + F7 编译引擎

感谢,已经解决问题了

v1.0.2 修复 PR
https://github.com/cocos-creator/engine/pull/5871