Unity3D教程:Array数组类的使⽤
Array-数组类只能⽤于Javascript。
Variables 变量
length
the length property of the array that returns or sets the number of elements in array。数组的长度属性, 返回或设置数组中元素的数量。
Functions 函数
Concat
Concat joins two or more arrays. The method does not change the existing arrays。联接两个或多个数组, 该⽅法不改变现有的数组。
Join
Joins the contents of an array into one string。链接数组的内容为⼀个字符串。
Push
Adds value to the end of the array。添加值到数组的末尾。
Add
Adds value to the end of the array。添加值到数组的末尾。
Pop
Removes the last element of the array and returns it。删除数组的最后⼀个元素并返回它。
Shift
Removes the first element of the array and returns it。删除数组的第⼀个元素并返回它。
RemoveAt
Removes the element at index from the array。从数组中移除索引为 “index” 的元素。
Unshift
Unshift adds one or more elements to the beginning of an array and returns the new length of the array。Unshift添加⼀个或多个元素到数组的开始位置, 并返回新的数组长度。Clear
Empties the array. The length of the array will be zero。清空数组, 数组的长度将为零。
Reverse
Reverses the order of all elements contained in the array。颠倒数组中所有元素顺序。
Sort
Sorts all Array elements。排序所有数组元素。
参考例⼦为:
function Start ()
{
var arr = new Array ();
// Add one element
arr.Push (“Hello”);
// print the first element (“Hello”)
print(arr[0]);
// Resize the array
// 调整数组⼤⼩
javascript全局数组arr.length = 2;
// Assign “World” to the second element
// 将 “World” 赋给第⼆个因素
arr[1] = “World”;
// iterate through the array
// 遍历这个数组
for (var value : String in arr)
{
print(value);
}
}
Unity有两种类型的数组, 内置的数组和普通的JavaScript数组。内置的数组 (原始的 “NET” 数组), 时⾮常快速和有效的, 但是他们不能被调整⼤⼩。它们是静态类型的, 这允许他们在检视⾯板中被编辑。
下⾯是⼀个如何使⽤内置数组的简单例⼦:
function Start ()
{
// iterate through the array
// 遍历数组
for (var value in values) {
print(value);
}
// Since we can't resize builtin arrays, we have to recreate the array to resize it
// 由于我们不能调整内置数组的⼤⼩, 我们必须重新创建⼀个数组来调整其⼤⼩
values = new float[10];
// assign the second element
// 给第⼆个元素赋值
values[1] = 5.0;
}
内置数组在性能相关的代码中是⾮常有⽤的 (使⽤Unity javascript 数组和内置数组可以很容易使⽤ “mesh interface” 在⼀秒钟内处理200万个顶点)。
另⼀⽅⾯普通的JavaScript数组可以调整⼤⼩, 排序并可以做所有你期望的数组类的操作, JavaScript数组不会显⽰在检视⾯板中. 你可以很容易地在JavaScript数组和内置数组之间转换。内置数组在性能相关的代码中是⾮常有⽤的 (使另⼀⽅⾯普通的JavaScript数组可以调整⼤⼩, 排序并可以做所有你期望的数组类的操作, JavaScript数组不会显⽰在检视⾯板中. 你可以很容易地在JavaScript数组和内置数组之间转换。
function Start ()
{
var array = new Array (Vector3(0, 0, 0), Vector3(0, 0, 1));
array.Push(Vector3(0, 0, 2));
array.Push(Vector3(0, 0, 3));
// Copy the js array into a builtin array
// 复制JS数组到内置数组
var builtinArray : Vector3[] = array.ToBuiltin(Vector3);
// Assign the builtin array to a js Array
// 将内置数组赋给JS数组
var newarr = new Array (builtinArray);
// newarr contains the same elements as array
// newarr包含相同的元素作为数组
print (newarr);
}
数组允许你将多个对象存储在⼀个变量中。Array类只能⽤于JavaScript 。
这是⼀个基本的例⼦,说明可以使⽤⼀个数组类做什么。
{
var arr = new Array ( ) ;
arr.Push (“Hello”); //添加⼀个元素
Print(arr[ 0]); //打印第⼀个元素
arr length = 2 ; //调整数组⼤⼩
arr [ 1] = “World”; //将“World”赋给第⼆个元素
for (var value : String in arr) //遍历这个数组
{
Print ( value );
}
}
Unity中有两种类型的数组,内置数组和普通的JavaScript数组。内置的数组(原始的.NET数组),是⾮常快速和有效的但是它们不能被调整⼤⼩。它们是静态类型的,这允许它们在检视⾯板中被编辑。这是如何使⽤内置数组的简单例⼦。
var value : float[ ]; //在检视⾯板中公开⼀个浮点数组,你可以在那⾥编辑它
function Start ( )
{
for ( var value in values) //遍历数组
{
print ( value );
}
value = new float[ 10 ]; //因为我们不能调整内置数组的⼤⼩ , 我们必须重新创建⼀个数组来调整它的⼤⼩
value[ 1 ] = 5.0;//给第⼆个元素赋值
}
内置数组在性能相关的代码中⾮常有⽤的(使⽤Unity的JavaScript和内置数组可以⾮常容易使⽤mesh interface在⼀秒内处理两万个顶点。) 另⼀⽅⾯,普通的JavaScript数组可以调整⼤⼩,排序并可以做所有你期望的数组类的操作。JavaScript数组不显⽰在检视⾯板中。你可以容易地在JavaScript数组和内置数组之间转换。
function Start ( )
{
var array = new Array ( Vector3(0,0,0),Vector3(0,0,1));
array .Push (Vector3 (0,0,2));
array .Push (Vector3 (0,0,3));
var builtinArray : Vector3[ ] = array . ToBuiltin ( Vector3 ); //拷贝js数组到内置数组
var newarr = new Array ( builtinArray ); //将内置数组赋给js数组
print ( newarr ); //newarr与array 包含相同的元素
}
注意按照Unity的命名规则下⾯所有函数均⼤写开头。为⽅便JavaScript⽤户, Unity数组类也接受⼩写函数。
变量
var length : int // 描述:数组的长度属性,返回或设置数组中元素的数量。
function Start ( )
{
var arr = Array ( “Hello” , “World” ) ;
print (arr . length ) ; //打印两个
arr . Length = 5 ; //调整数组的⼤⼩为5
}
函数
function Add ( value : object ) : void // 描述:添加 value 到数组末端。
var arr = new Array (“Hello”);
arr.Add (“ World ”);
Print ( arr ); //打印“Hello ”,“World”
function Clear ( ) : void // 描述: 清空数组。数组的长度将为零。
var hello = new Array (“Hello ”,“World ”);
hello.Clear ( ) ; //现在hello包含零个元素
function Concat ( array :Array , optionalArray0: Array, optionalArray1 : Array):Array // 描述:连接两个或多个数组。这个⽅法不会改变已有的数字并返回连接后的数组拷贝function Start ( )
{
var arr = new Array (“Hello”,“World”):
var arr2 = new Array (“!”);
var joined = arr.Concat ( arr2 ); //现在jointed包含所有3个字符串
Print ( joined ); //打印“Hello”,“World”,“!”
}
function Join ( seperator :string ) : String // 描述:链接数组内容为⼀个字符串。元素将被seperator字符串分割,并返回数组的拷贝
function Start ( )
{
var arr = new Array (“Hello” , “World”);
print ( arr . join (“ , ”));//打印“Hello,World”
}
function Pop ( ) : object // 描述:移除数组最后⼀个元素并返回它。
var arr = new Array (“Hello ”,“World”);
arr . Pop ( );
print ( arr );//只打印“Hello”
function Push (value : object) : int // 描述:添加value到数组末端。并返回新数组长度。
var arr = new Array (“Hello”);
arr.Push (“World”);//Unity3D教程⼿册:www.unitymanual
print ( arr );//打印“Hello”,“World”
function RemoveAt (index : int ) : void // 描述:从数组中移除索引为index的元素。
var arr = new Array (“Hello” , “ and good morning” , “World ”);
arr.Remove ( 1 ) ; //移除 “and good morning”
print ( arr );//打印 “ Hello World ”
function Reverse () : Array // 描述:颠倒数组中所有元素顺序。
var hello = new Array (“ Hello ” ,“ World ”) ;
hello Reverse( ) ;
print (hello);//打印World,Hello
function Shift ( ) :object // 描述:移除数组的第⼀个元素并返回它。
var arr = new Array ( “ Hello ” , “ World ”);
arr . Shift ( ) ;//Unity3D教程⼿册:www.unitymanual
print ( “ World ” ) ; //现在arr只包含“ World ”
function Sort( ) : Array // 描述:排序所有数组元素
var hello = new Array ( “ e ” ,“ a ” ,“ b ”);
hello . Sort ( ) ;
print ( hello ) ;// 打印 a ,b ,c
function Unshift ( newElement : object , optionalElement : object ) : int // 描述: Unshift 添加⼀个或多个元素到数组的开始位置并返回新的数组长度。
var arr = new Array (“ Hello ”,“ World ”); arr . Unshift (“ This ”,“ is ”);
print ( arr ) ;//打印 This,is,Hello,World
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论