0

ゲームオブジェクトとしてチェックポイントを持つ配列(Unity3DのUnityScriptファイル内)があり、それらを交換する関数を作成しようとしています。ので、私は持っています

public var cps: GameObject[]; //Initializes correctly

function swap(o1:GameObject,o2:GameObject)
{
    var TempGO:GameObject = o1;
    o1=o2;
    o2=TempGO;
}

swap(cps[0],cps[1]); // nothing happens here.

ポインター(jsに存在するかどうかはわかりません)または他の何かを使用する必要がありますか?

ps:私は実際に、特定のポイントまでの距離に基づいて、それらの間でソートを実行しようとしているので、他の提案もいただければ幸いです。

ありがとう!

4

2 に答える 2

3

配列内の 2 つの要素を交換する場合は、配列 + 2 つのインデックスを渡す必要があります。

于 2013-01-25T22:04:06.587 に答える
1

Javascript はすべてを値で渡します。参照で渡すことはできず、ポインタもありません。したがって、2 つの要素を交換する場合は、配列とインデックスを指定する必要があります。

function swap(var arr:GameObject[], var i, var j) {
    var temp:GameObject = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
}

そしてそれを次のように呼び出します

swap(cps, 0, 1);
于 2013-01-25T22:06:50.480 に答える