creator3.4.2 是不是物理这块有问题啊?还是说我用法不对,刚体碰到触发器后节点设置false后还是持续收到触发器消息

如题,creator 3.4.2, 一个刚体运动中碰到了触发器后,在触发器事件里面执行如下逻辑:
let rigidBody = node.getComponent(RigidBody);
rigidBody.setLinearVelocity(Vec3.ZERO);
rigidBody.setAngularVelocity(Vec3.ZERO);
rigidBody.enabled = false;

let collider = node.getComponent(SphereCollider);
collider.enabled = false;

node.active = false;

但触发器事件onTriggerStay还是持续收到,是我这样写有问题吗?我要如何在刚体碰到触发器时使这个刚体隐藏

试试这个
rigidbody.enabledContactListener = false;

试了下,没用,触发器消息onTriggerStay一直会收到的
碰撞器不管怎么设置,触发器还是会一直有这个碰撞器的事件,除了我把这个碰撞器移到屏幕显示区域外,不然即使节点隐藏都没用

在碰撞器的
public get needTriggerEvent () {

    return this._needTriggerEvent;

}

public get needCollisionEvent () {

    return this._needCollisionEvent;

}

可以出一个demo吗

我写个demo说明,好了发上来

demo也是有问题的,你可以看下,demo工程里面把物理引擎改成基于PhysX的物理系统就会看到onTriggerStay一直收到
demo.rar (19.4 KB)

demo运行按空格键给球一个初始力,让它运动到触发器后隐藏

试了一下,隐藏和销毁事件也会一直触发,我想到的事把onTriggerStay事件off掉,或者注册的时候用once :sweat:

说白了还是引擎的bug,不同的物理引擎同样的逻辑执行结果两样,坑