[bug 反馈]:collider2d 开启 sensor 后不触发回调

  • Creator 版本: 3.6.3

  • 目标平台: chrome117.0.5938.150(正式版本) (64 位)

  • 重现方式:setPosition

  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率: 100%

使用 Box2D 物理系统,如果开启了 Collider2D 的 Sensor 选项的话,如果 RigidBody2D 的 type 不是 Animated,那么通过 setPosition 方式不会触发碰撞事件,比如 BEGIN_CONTACT

image

demo 下载
demo_363.zip (3.5 MB)

顶贴,3.8.4还是有同样的问题,不用setPosition还能用其他方法移动吗

setpostion一直都不会触发碰撞回调啊,只有使用物理的方式让其移动才会触发回调

如果不想使用物理的移动方式,应该可以setPostion()到正确的位置,然后
// 获取移动速度
const velocity = rigidbody.linearVelocity;
// 设置移动速度
rigidbody.linearVelocity =v2(0,0.001);
应该是可以的,好久没用物理了,应该是这个方法,物理最好所有的移动 都通过linearVelocity值去改变,就可以出发事件了

原来如此,感谢大佬