确定一个网格是否在 threejs 中的另一个网格内

Determine if a mesh is inside another mesh in threejs

我正在玩三个 JS,想确定一个网格是否完全在另一个网格内。我写了一个小机器人,它应该 运行 进入玩家导航的主页框。我知道如何检测碰撞,但是有没有一种简单的方法来检测一个对象是否在另一个对象内部?

我可以计算 homebox 的中心位置并与机器人位置进行比较,但也许 threejs 中内置了一些东西。

如果您为 'robot' 和 'home' 都创建了边界框 (THREE.Box3),则可以使用 the containsBox method。所以像这样:

var robotBB = new THREE.Box3().setFromObject(robot);
var homeBB = new THREE.Box3().setFromObject(home)

其中 homerobot 是您的对象。现在您可以:

var robotIsHome = homeBB.containsBox(robotBB);
如果 robotBB 完全在 homeBB 内,

robotIsHome 将为真。