1

我在一个数组中有一些 GameObject,我想根据空间中的一个点按距离对它们进行排序。所以基本上我正在寻找一个按距离算法排序的点。

我确定这是基本的排序算法,但到目前为止我在 Google 上找不到有效的答案。

谢谢您的帮助 !

4

2 回答 2

1

这应该让你开始:

System.Array.Sort<GameObject>(arrayOfGameObjects,
(g1, g2) => 
    (Vector3.Distance(target,g1.transform.position) < 
     Vector3.Distance(target,g2.transform.position))?-1:1);
于 2013-03-01T01:58:13.940 回答
1

杰达克的回答是对的。如果您可以使用数组的有序副本,而不是对原始副本进行排序,则另一种方法是使用Linq OrderBy扩展方法Enumerable

Vector3 targetPos;
IEnumerable<Pet> ordered = arrayOfGameObjects.OrderBy(
    obj => Vector3.Distance(obj.transform.position,targetPos));
于 2013-03-01T09:13:13.690 回答