配列にいくつかのGameObjectがあり、空間内のポイントに基づいて距離で並べ替えたいと思います。つまり、基本的には距離アルゴリズムによるポイントソートを探しています。
これは基本的な並べ替えアルゴリズムのものだと確信していますが、これまでのところGoogleで有効な答えを見つけることができませんでした。
助けてくれてありがとう !
ジャーダックの答えは正しいです。元の配列を順序付ける代わりに、配列の順序付けられたコピーを使用できる場合は、次のようにLinq
OrderBy拡張メソッドを使用することもできEnumerable
ます。
Vector3 targetPos;
IEnumerable<Pet> ordered = arrayOfGameObjects.OrderBy(
obj => Vector3.Distance(obj.transform.position,targetPos));
これで始められるはずです:
System.Array.Sort<GameObject>(arrayOfGameObjects,
(g1, g2) =>
(Vector3.Distance(target,g1.transform.position) <
Vector3.Distance(target,g2.transform.position))?-1:1);