微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获得两个物体之间的最短距离?

如何解决如何获得两个物体之间的最短距离?

enter image description here

我有两个大小差异很大的对象。我想找到这些物体之间的最短距离。例如,如果我在墙前有一把小椅子。我想要椅子和墙壁之间的距离。我尝试使用 Vector3.distance,但它使用世界坐标进行计算。我尝试使用对撞机来实现这一点,因为我在某处读到它是解决方案,但不清楚如何去做。有人可以帮忙吗?

添加了一张图片来说明我想要什么。红线是我使用 Vector3.distance 时得到的距离,但我想要的距离是绿线。如果游戏中有很多物体,我怎样才能得到我选择的两个物体之间的最短距离。

解决方法

在您的情况下,您可以使用 this,您需要将 yourObject 位置作为第一个参数传递,将 wall.up 作为第二个参数传递(以防您的墙向上变换指向yourObject 侧)。然后您将收到墙上的一个点,该点垂直于墙投影在墙上。获取该点并使用 Vector3.DistanceyourObject 位置到投影点。

var pointOnWall = Vector3.ProjectOnPlane(yourObject.position,wall.up);
var closestDistance = Vector3.Distance(yourObject.position,pointOnWall);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。