我在一个数组中有一些GameObject,我想根据空间中的一个点按距离对它们进行排序。所以基本上我正在寻找一种按距离算法排序的点。
我确定这是基本的排序算法,但到目前为止我在Google上找不到有效的答案。
感谢您的帮助!
答案 0 :(得分:1)
这应该让你开始:
System.Array.Sort<GameObject>(arrayOfGameObjects,
(g1, g2) =>
(Vector3.Distance(target,g1.transform.position) <
Vector3.Distance(target,g2.transform.position))?-1:1);
答案 1 :(得分:1)
Jerdak回答是对的。
如果您可以使用数组的有序副本,而不是对原始数据进行排序,则可以使用Linq
OrderBy扩展方法Enumerable
:
Vector3 targetPos;
IEnumerable<Pet> ordered = arrayOfGameObjects.OrderBy(
obj => Vector3.Distance(obj.transform.position,targetPos));