Babylon.js Mesh Picking&忽略一些网格物体

时间:2013-11-13 03:24:17

标签: javascript html5 3d

我目前正在使用新的Babylon.js框架开展一个小项目。我遇到的一个问题是我基本上有两个网格。其中一个网格应该是背景,另一个应该跟随光标标记您要定位的其他网格的位置。问题是,当我将目标网格移动到光标位置时,当我使用scene.pick时,它会阻挡背景网格,导致其他网格的位置设置为自己。

使用scene.pick时是否有任何方法可以忽略定位网格,以便我只选择背景网格或者是否有其他方法可以使用?如果没有,那么实现这种功能的步骤是什么,只能通过某些网格进行光线投射?

如果您需要代码示例或任何其他形式的描述,请告诉我们。谢谢!

1 个答案:

答案 0 :(得分:8)

好的,这很容易。

所以,我们有两个网格。一个被叫做#34; ground",第二个"光标"。如果你只想在地面上挑选,你有两个解决方案:

首先:

var ground = new BABYLON.Mesh("ground",scene);
ground.isPickable = true ; 
var cursor = new BABYLON.Mesh("cursor", scene);
cursor.isPickable = false;  

...

var p = scene.pick(event.clientX, event.clientY); // it return only "isPickable" meshes
...

第二

var ground = new BABYLON.Mesh("ground",scene);
var cursor = new BABYLON.Mesh("cursor", scene);

...

var p = scene.pick(event.clientX, event.clientY, function(mesh) {
    return mesh.name == "ground";  // so only ground will be pickable
}); 
...

问候。