我有一个数组(在Unity3D的UnityScript文件中),其检查点为GameObjects,我正在尝试编写一个函数来交换它们。所以我有
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中)或其他什么?
p.s。:我实际上是在尝试根据他们与某一点的距离在他们之间进行排序,因此任何其他建议也将受到赞赏。
谢谢!
答案 0 :(得分:3)
如果要交换数组中的两个元素,则需要传递数组+两个索引。
答案 1 :(得分: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);