代码创建 MeshCollider 无法射线检测

创建boxcollider等都可以正常检测,之前1.2版本也可以正常检测,3.0之后就检测不到了,convex或者加rigbody等方法都试过也没用。
下了个3.0分支的 physics-3d的例子,加了创建mesh的代码测试了一下也是射线检测完全检测不到

        let newBox = new Node();

        let TorusMesh = this.Torus.getComponent(MeshRenderer)?.mesh!;

        const model = newBox.addComponent(MeshRenderer);

        model.mesh = TorusMesh;

        newBox.setParent(this.node);

        // BoxCollider可以检测

        // let colliderComponent = newBox.addComponent(BoxCollider);

        // MeshCollider不可以检测

        let colliderComponent = newBox.addComponent(MeshCollider);

        colliderComponent.mesh = TorusMesh;

physics-3d.rar (494.0 KB)

已经解决了,把node先remove再重新添加就可以了。
但不知道是不是BUG,首先MeshCollider一定要node添加到节点树之后才能设置mesh,其次就是设置mesh之后collider无效,目前要重新添加到节点树才行。
在1.2的时候我这个写法是可以正确在ammo引擎下运行的,但是到3.0之后只有cannon引擎可以生效,ammo引擎要重新把节点激活一下才能生效

1赞

感谢反馈,的确是bug,3.0中重新enable组件也可以解决

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。