我目前正在使用新的Babylon.js框架开展一个小项目。我遇到的一个问题是我基本上有两个网格。其中一个网格应该是背景,另一个应该跟随光标标记您要定位的其他网格的位置。问题是,当我将目标网格移动到光标位置时,当我使用scene.pick时,它会阻挡背景网格,导致其他网格的位置设置为自己。
使用scene.pick时是否有任何方法可以忽略定位网格,以便我只选择背景网格或者是否有其他方法可以使用?如果没有,那么实现这种功能的步骤是什么,只能通过某些网格进行光线投射?
如果您需要代码示例或任何其他形式的描述,请告诉我们。谢谢!
答案 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
});
...
问候。