186*****645 laya.physics.js文件中这个_sendEvent函数中,"_triggered"标签已经用被来区分是Enter还是Stay了。而在box2d.b2Contact.prototype.Update函数中,又用"!b"的方式区分了是Begin还是Stay。这种重复的区分导致onTriggerStay一直无法被调用。上图红框出,应该去掉"!",改为"b && c && a && a.BeginContact(this);"
kylin9718 1) 一般而言,有 onTriggerEnter 和 onTriggerExit 已经足够了,onTriggerStay 只是预留了接口,并没有真的去实现。2) onTriggerStay 每帧都会触发,在里面写逻辑特别消耗性能,并不建议使用3) 我基于 2.8.0beta3 实现了一版,你可以试一下,但我们不会合并到引擎中去。 laya.physics_.zip0B
186*****645 kylin9718 好的,谢谢。我之前也是在使用onTriggerEnter和onTriggerExit。只是发现,有时候enter和exit不会完全匹配。比如其中一个原因是,在触发enter后修改isSensor,就会导致没有对应的exit。我后来换了一种方式,不修改isSensor了,但是还是会偶尔无法匹配。由于无法定位原因,所以才会选择使用Stay的。