文档详情

Unity3D的脚本-script入门.pdf

发布:2017-06-26约6.6千字共12页下载文档
文本预览下载声明
Unity3D 的脚本-script 入门 Unity3D 的基本操作很容易就能掌握了,接下来就是游戏系统的核心部分:脚本。 什么是Script (脚本)?简而言之,就是使用代码来执行一系列动作命令的特殊文本,它需 要编译器来从新解读。U3D 内部如何解读脚本,这不是我们所要关心的—这是引擎开发人员 的活,我们所要知道的就是脚本的使用规则。 【三种语言的特点】 U3D 支持C#,JavaScript ,BOO 三种语言格式的代码编写。首先来简单介绍下这三种语 言的特点: 对U3D 来说,这是入门级的脚本语言,U3D 内置的函数都能通过JS 方便的调用。语法 上,JS 和传统的C 语言差不多,需要分号结束符,变量类型定义,大括号……不过它的变量 类型定义,是通过冒号接在变量右边,如:Name:string=”Li”。相对其他两种语言,使用 JS 语法,很多函数不需要实例化就能直接使用,如: vector3 direction=vector3(1,2,3) 。如果使用 C# ,则需要使用 new 关键字:vector3 direction=new vector3(1,2,3) 。JavaScript 直接继承自U3D 的MonoBehaviour 类,因此不像C# 和BOO 那样需要使用Using 或Import 来加载类库。这看似省心,不过因为缺少了加载特殊 类库,JavaScript 能调用的第三方函数不多(当然,我们可以载入net 类库给JavaScript 调用, 虽然看着有点奇怪……)。 *注意:JavaScript 不是Java ,同时,U3D 中的JavaScript 也有别于独立的JavaScript 语言。 C# (发音C Sharp ),微软开发的面向对象编程语言。由于有强大的net 类库支持,以及 由此衍生出的很多跨平台语言,C#逐渐成为 U3D 开发者推崇的程序语言。U3D 内置的脚本 范例中,C#脚本也占了很大一部分(其他脚本是JavaScript 脚本)。另外,在装有VisualStudio 的电脑上,我们也可以使用微软的脚本编辑工具来编写U3D 脚本。C 开头,那么语法上和C 语言是很接近的,除了面向对象语言所具有的一些特点。当然,我不用在这进行太多说明, 因为C# 的相关学习资料很多。 BOO 是新兴的基于Python 的语言。语法上,BOO 和Python 大同小异,都是通过换行来 实现语句的结束,它省略了分号、大括号,甚至条件语句的小括号等。Python 在很多大型 三维图形软件上都有应用,由此可以看出它的跨平台性能很不错,我也选择使用 Python 来 编写maya 特效脚本;不过,对于游戏事件的编写,个人感到这种精简的语法反而有些难以 适应。如基本的变量类型定义,BOO (类Python)语法就显得不那么便捷:direction as vector3 =vector3(1,2,3) 。游戏事件不同于特效脚本,前者是过程中的交互,而后者只需要看到结果。 因此,游戏中经常需要大量的具有明确类型的变量出现,BOO 语言可以省略变量类型的优 势在这里反而容易引发问题。 引擎编译时,三种语言的执行效率是一样的,因为 U3D 会内部进行它自己的语言格式 的转换。尽管我们可以在不同语言编写的脚本之间进行变量和方法的调用,但是我不推荐那 么做,因为测试确实会存在一些意想不到的问题。使用不同语言编写多个脚本时,应尽量让 脚本之间没有直接联系。 最后,个人认为,在windows 平台下,C#是U3D 脚本语言的最佳选择。 【脚本的使用规则】 U3D 的脚本作用方式很有趣,我称之为“拖放法” 。无论是作用在一个具体的场景物体还 是管理着批量的物体,脚本首先必须依附于场景中的一个元素才能被执行。要将脚本赋予物 体的方式很简单,就是按住鼠标左键将脚本文件拖放到物体的属性面板上(也可以拖放到场 景的物体上)。U3D 有个概念,那就是component (成分)--类似 Maya 的节点。包括脚本, 所有元素属性都是游戏物体的 component 。添加、删除、停用、读取、写入component 信 息,就是脚本所要做的(尽管脚本也是个component )。
显示全部
相似文档