1

我创建了一个地面,然后在其中挖了一个空隙,最后通过 physijs 添加了物理效果。

let Mesh = new THREE.Mesh(new THREE.BoxGeometry(800, 10, 800), material);
Mesh = new ThreeBSP(Mesh);

let Gap = new THREE.Mesh(new THREE.BoxGeometry(230, 10, 170), material);
Gap = new ThreeBSP(Gap);

Mesh = Mesh.subtract(Gap).toMesh(material);
Mesh = new Physijs.BoxMesh(Mesh.geometry, Mesh.material, 0);
scene.add(Mesh);

然后,您创建一个具有物理效果的集合。计划是从地上的洞口掉下来,结果似乎悬浮在洞口中。为什么?

let geometry = new Physijs.BoxMesh(new THREE.CylinderGeometry(10, 15, 50, 25), material, 1);
geometry.position.set(0, 500, 0);
scene.add(geometry);

我正在盖房子。我在地板和墙壁上挖洞来代表楼梯和门,然后我在地板和墙壁上添加物理效果。在计划中,代表人的物体可以通过这些孔,但它们被挡住了。人直接悬在楼梯洞口上方,门也进不去,仿佛被一堵无形的墙挡住了

4

1 回答 1

1

Physijs.BoxMesh只会创建一个有八个角和平面之间的盒子。你考虑过使用Physijs.ConcaveMesh吗?我找不到任何文档,但您可以在源代码中看到它

Mesh = Mesh.subtract(Gap).toMesh(material);
Mesh = new Physijs.ConcaveMesh(Mesh.geometry, Mesh.material, 0);
scene.add(Mesh);
于 2020-10-01T01:15:39.063 回答