我有一个向量列表和一个PlayerVector我只想知道如何在我的列表中找到最接近我的PlayerVector的Vector.
这是我的变量:
List<Vector2> Positions;
Vector2 Player;
Run Code Online (Sandbox Code Playgroud)
变量已经声明了所有,我只需要一个简单的代码来搜索最接近我的播放器的位置.有没有一个简单的方法?
由于您不需要精确的距离(只是相对比较),您可以跳过毕达哥拉斯距离公式中的平方根步骤:
Vector2? closest = null;
var closestDistance = float.MaxValue;
foreach (var position in Positions) {
var distance = Vector2.DistanceSquared(position, Player);
if (!closest.HasValue || distance < closestDistance) {
closest = position;
closestDistance = distance;
}
}
// closest.Value now contains the closest vector to the player
Run Code Online (Sandbox Code Playgroud)