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

Determine if a mesh is inside another mesh in threejs

本文关键字:网格 一个 是否 另一个 threejs      更新时间:2023-09-26

我正在使用三个JS,并想确定一个网格是否完全在另一个网格内。我写了一个小机器人,它应该跑进一个由玩家导航的主盒子里。我知道如何检测碰撞,但是有没有一种简单的方法来检测一个物体是否在另一个物体内?

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

如果你为"机器人"和"家"制作一个边界框(THREE.Box3),你可以使用containsBox方法。所以像这样:

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

homerobot是你的对象。现在您可以执行以下操作:

var robotIsHome = homeBB.containsBox(robotBB);

如果robotBB完全在homeBB内部,robotIsHome是正确的。

相关文章: