首页|行业资讯|企业名录|周边产品|数字城市|增强现实|工业仿真|解决方案|虚拟医疗|行业仿真|图形处理|军事战场
资讯首页
行业资讯 >> 学习教程>>正文
Unity3D脚本教程3:数组(Array类)
2012年3月5日    评论:    分享:

    来源:第三维度

    Array类(数组)

    数组允许你将多个对象存储在一个变量中。Array类只能用于JavaScript 。更多关于C#或JavaScript中ArrayLists ,字典或哈希表的信息参考MSDN 。

    这是一个基本的例子,说明可以使用一个数组类做什么

   function Start( )
   {
       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");
    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 ( ) ; 
    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

标签:Unity
上一篇:Unity3D脚本教程2:运行时类
下一篇:三维虚拟世界发展简史
网友评论:Unity3D脚本教程3:数组(Array类)
评论
留名: 验证码:
您可能还需要关注一下内容:
·基于洪水模拟和预报的三维仿真系统设计
·基于Unity3D平台的三维虚拟城市研究与应用
·Unity3d 爆炸火焰特效教程
·Unity3d 基础特效教程-下雨
·基于Unity3D实现大件运输过程动态模拟
·基于Unity3D的虚拟水流墙系统的设计研究
· 西游汉字ceo张红:早教市场缺精品
·基于Unity的虚拟战场地理环境构建
·基于虚拟现实技术的三维矿井漫游演示系统开发与应用
·Unity3D实现3D立体游戏原理及过程
☏ 推荐产品

Ladybug5全景
商家:力方国际

ProJet®
商家:力方国际

ProJet®
商家:视科创新

Premium1.5
商家:视科创新

巴可HDX主动立体投
商家:德浩科视

巴可HDF-W26投
商家:德浩科视

巴可30000流明2
商家:德浩科视

巴可4万流明2K投影
商家:德浩科视
☞ 外设导航
☏ 企业名录
【广州】中科院广州电子技术有限公司
【北京】第二空间(北京)科技有限公司
【北京】幻维世界(北京)网络科技有限公司
【厦门】厦门惠拓动漫科技有限公司
【厦门】厦门幻眼信息科技有限公司
【深圳】深圳南方百捷文化传播有限公司
【北京】北京思源科安信息技术有限公司
【上海】上海殊未信息科技有限公司
【北京】北京赢康科技开发有限公司
【武汉】武汉科码软件有限公司
友情链接 关于本站 咨询策划 行业推广 广告服务 免责声明 网站建设 联系我们 融资计划
北京第三维度科技有限公司 版权所有 京ICP备09001338
2008-2016 Beijing The third dimension Inc. All Rights Reserved.
Tel:010-57255801 Mob:13371637112(24小时)
Email:d3dweb@163.com  QQ:496466882
扫一扫 第三维度
官方微信号