我有一个Vector3对象数组(表示3d空间中的点),另一个Vector3对象表示光标位置。 我想得到最接近我的光标的Vector3数组中的索引。
光标点和数组中的一个点之间的距离是这样得到的。
float Distance = (Points[0]-cursprpoint).magnitude;
我已经编写了一个函数来执行此操作,但它似乎有点小问题。 我决定尝试使用Linq而不是cus我想学习如何使用它。我不理解linq,我希望如果有人发布了一个如何做到这一点的例子,这将有助于我理解。
答案 0 :(得分:1)
float closestDistance = Points.Min(p => p.DistanceTo(otherPoint));
var pointWithClosestDistance = Points.Where(p => p.DistanceTo(otherPoint) == closestDistance).FirstOrDefault();
var indexOfPoint = Points.IndexOf(pointWithClosestDistance);
DistanceTo
方法留给提问者作为练习。