1

配列にいくつかのGameObjectがあり、空間内のポイントに基づいて距離で並べ替えたいと思います。つまり、基本的には距離アルゴリズムによるポイントソートを探しています。

これは基本的な並べ替えアルゴリズムのものだと確信していますが、これまでのところGoogleで有効な答えを見つけることができませんでした。

助けてくれてありがとう !

4

2 に答える 2

1

ジャーダックの答えは正しいです。元の配列を順序付ける代わりに、配列の順序付けられたコピーを使用できる場合は、次のようにLinq OrderBy拡張メソッドを使用することもできEnumerableます。

Vector3 targetPos;
IEnumerable<Pet> ordered = arrayOfGameObjects.OrderBy(
    obj => Vector3.Distance(obj.transform.position,targetPos));
于 2013-03-01T09:13:13.690 に答える
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 に答える