如何在babylon.js网格中启用碰撞

时间:2018-01-13 10:06:48

标签: javascript babylonjs cannon.js

我一直在用 Babylon.js 制作游戏。在我的游戏中,我有一个放置高度图的地方,它在我运行场景时出现,但是当我尝试在它上面行走(或者只是站在它上面)时,我会摔倒。我几乎到处搜索,但我找不到原因。这是我的代码:

var ground = BABYLON.Mesh.CreateGroundFromHeightMap("ground", "Assets/Heightmap.png", 1000, 1000, 100, 0, 100, scene, false);
var groundMaterial = new BABYLON.StandardMaterial("ground", scene);
groundMaterial.diffuseTexture = new BABYLON.Texture("Assets/Sand.png", scene);
groundMaterial.diffuseTexture.uScale = 50.0;
groundMaterial.diffuseTexture.vScale = 50.0;
ground.position.y = -2.0;
ground.material = groundMaterial;

然后我运行:

var gravityVector = new BABYLON.Vector3(0,-9.81, 0);
var physicsPlugin = new BABYLON.CannonJSPlugin();
scene.enablePhysics(gravityVector, physicsPlugin);

在所有这些之后,我尝试为地面运行BABYLON.PhysicsImposter但它不起作用。到目前为止,我已经尝试过BoxImposter,MeshImposter和HeightMapImposter。他们都没有为我工作。

我很想得到一个答案,谢谢你。

1 个答案:

答案 0 :(得分:0)

如果你想要进行相机碰撞,你必须使用碰撞引擎而不是物理:http://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity