u3d如何快速入门 C#,JavaScript,BOO三种语言的特点

  次阅读 来源:互联网(转载协议) 2016-01-26 10:22 我要评论(0)

刚开始学U3D,入门是比难的,首先要了解U3D最重要的五大界面,第一:场景(Sence),构建游戏的地方;第二:层级 (Hierarchy),场景中的游戏对象都列在这里。第三:检测面板(Inspector),当前选中的资源或对象的设置,是一些变量和组件的集合。第四:游戏(Game),演示窗口,仅在播放模式中演示。第五:项目 (Project),一些资源的列表,和库的概念一样。

然后了解主菜单栏的八大菜单:文件(File),编辑(Edit),资源(Assets),游戏对象(GameObject),组件 (Component),地形(Terrain),窗口(Window),帮助(Help),熟悉这些菜单每一个命令对以后的游戏制作大有帮助。

在U3D中,一定要对坐标(Coordinates)有个了解,U3D的坐标点是以(x,y,z)的顺序排列的,切记。熟悉坐标,在做游戏的过程中会更加顺手。

如果你没有任何编程基础,一样可以学习Javascript(或C#这些都行),我学AS的时候也完全不懂编程。先学Javascript语言也无妨,因为这个引擎主要是个编程工具。打开Script帮助文档和Monodevelop编写器,从最简单的位移 (transform.Translate)开始吧。

Unity3D的基本操作很容易就能掌握了,接下来就是游戏系统的核心部分:脚本。

什么是Script(脚本)?简而言之,就是使用代码来执行一系列动作命令的特殊文本,它需要编译器来从新解读。U3D内部如何解读脚本,这不是我们所要关心的 这是引擎开发人员的活,我们所要知道的就是脚本的使用规则。

【三种语言的特点】

U3D支持C#,JavaScript,BOO三种语言格式的代码编写。首先来简单介绍下这三种语言的特点:

u3d如何快速入门 三联

对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)。

net语言的C#,在不同脚本之间调用变量和方法时,如果脚本位于同一路径下,那么只需要对非static(静态)成员进行new实例化即可。例如a.cs和b.cs,要调用脚本a中的一个非静态变量cc,需要在脚本b中写入:a c=new a(),然后c.cc的格式完成调用。不过,作为一个component,要调用不同脚本之间的成员,U3D的规则是使用GetComponent函数来完成(其实也就相当于new的作用,只是U3D不支持这种脚本间调用的写法)。如:

u3d

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 全球陷入"区块链狂热"潮,大规模应用还需等待

    全球陷入"区块链狂热"潮,大规模应用还需等待

  • 汤晓鸥:人工智能的中国式文艺复兴

    汤晓鸥:人工智能的中国式文艺复兴

  • 马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

    马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

  • 区块链最近太火,但A股多家公司明确表态不考虑涉足

    区块链最近太火,但A股多家公司明确表态不考虑涉足

网友点评网友点评
阅读推荐阅读推荐

算法 任何一个入门的软件开发人员都会听到这句话:算法是软件的灵魂!近年来大火的机器学习即是在算法在人工智能上的集中体现。今日头条通...

据《日本经济新闻》报道,日本东京大学教授稻叶雅幸等人开发出再现日本人骨骼肌肉构造的机器人。机器人各部位的肌肉和骨骼长度与日本人的平...

以奥黛丽-赫本为原型打造的人形机器人索菲娅首次拜访了印度。索菲娅是世界上首位获得公民身份的机器人,她在12月30日出现在了印度理工学院...

在查获现场,代售点电脑旁的一台机器人通过敲击电脑键盘抢票。 广州日报惠州讯 (全媒体记者秦仲阳 通讯员张中铃摄影报道)2018年春运售票已...