Unity3D学习笔记(十五)脚本:HelloWorld!

来源:互联网 发布:国外注册域名要备案吗 编辑:程序博客网 时间:2024/05/19 15:26
憋了这么多章的基础知识,终于可以开始写脚本啦。虽然Unity提供了强大的引擎编辑功能,让游戏设计师可以通过简单的拖放动作就能制作出漂亮的游戏,但作为程序员怎么可以一行代码都不写呢,嘿嘿。

Unity支持Javascript、C#、Boo三种语言的脚本编写,并支持不同语言之间混合调用(以类为单位),虽然我也不是很清楚第三位同志是何方神圣……但是这无伤大雅,因为接下来的笔记我都会用C#来写,js什么的虽然很方便,但是毕竟不是强类型的,总感觉写起来怪怪的,哎哟!谁丢来的皮鞋?

有了脚本,就可以实现更加个性化的功能,比如人工智能(怪物看到玩家比自己弱就会追上来打,反之则会谨慎地留在原地。),自动寻路(网游里最常见了,没有这个功能都不好意思叫自己国产游戏),动态加载(当玩家低等级的时候只下载低等级内容,等到玩家升级之后再逐渐下载高等级的游戏内容)等等。

绝大多数介绍程序、脚本的参考书籍第一个例子,或者是破解XX系统运行自制程序演示通常都是在屏幕上显示一个“hello world”,其背后其实包括了最基本的方法的调用和可执行代码框架,作为入门是最好不过,并且貌似这也已经是一个国际惯例了。

那么就从这一步入手吧,要编写脚本则必须先创建一个脚本资源文件,在工程面板中点击右键,并在弹出菜单中选择”Create→C# Script“,然后重命名为HelloWorld。

双击HelloWorld脚本,Unity默认会自动打开MonoDevelop。

这是一个开源的IDE(集成开发环境),在安装Unity的时候默认安装MonoDevelop。尽管其编辑功能已经很强大了,但是用惯了微软的Visual Studio,感觉还是不是很顺手。

还好Unity允许我们更改默认的脚本编辑器,可以在主菜单的“Edit(编辑)→Preferences…(偏好设定)”中,将External Script Editor(外部脚本编辑器)替换成自己喜欢的编辑器。不过简单起见,还是暂时先用MonoDevelop吧。

可以看到Unity已经自动生成了代码框架:

img?s=JwNSgPSdm&l=y.jpg 

有几点要注意的:


  • 所有的脚本组件都必须继承于MonoBehaviour,Javascript会自动继承,而C#和Boo则必须显式声明;
  • 脚本的类名与文件名必须完全一致;
  • 目前Unity还不支持命名空间特性;
每次建立脚本的时候,都会自动生成Start方法和Update方法,其实还有很多可以重写的方法,可以在Unity手册中查到。

  • Start():当游戏启动时,所有附加在游戏对象上的脚本的Start方法将会被调用,所以可以在这里写一些初始化的功能;
  • Update():所有附加在游戏对象上的脚本的这个方法会在游戏里的每一帧被调用;
因此在Start中写上:

img?s=eppYI6xTp&l=y.jpg 

然后按Ctrl+S保存,并切换到Unity窗口,Unity就会自动编译之前写的脚本了,几乎不需要等待。由于代码是写在Start中的,所以必须将脚本附加到一个游戏对象上,这样运行游戏的时候这段代码才会被调用。我选了之前已经做好的玩家状态框,把在工程面板中的HelloWorld脚本拖动到层次面板上的PlayerFrame,这样在检视面板中就可以看到HelloWorld脚本组件了。

img?s=7lMfdBCLL&l=y.jpg 

运行游戏就可以看到效果咯:

img?s=EC1PHI85t&l=y.jpg 

喂喂,这也太不给力了吧0_0。只是在控制台的提示信息栏里显示,游戏发布了玩家根本看不到啊。

万事开头难嘛,如果写的太深入可能把自己都绕晕了,况且这个记录日志的功能在今后调试的过程中是相当实用的。Debug类还有很多的方法可以调用,在主菜单的“Help(帮助)→Scripting Reference(脚本参考)”中可以搜索查看。

总的来说这章还是比较简单的,下一章我准备把玩家框体完善一下,让它变成具有真正的能实时反应血量、魔法值的血条^_^

0 2
原创粉丝点击