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

如果要交换数组中的两个元素,则需要传递数组 + 两个索引。

于 2013-01-25T22:04:06.587 回答
1

Javascript通过值传递一切,你不能通过引用传递事物,并且没有指针。因此,如果你想交换两个元素,你需要给它数组和索引:

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 回答