1.3 创建一个Hello World程序
提示
我们假设读者已经具备了一定的编程基础,如果读者从未编写过一个C#程序,请参考本书附录的C#快速入门教程,从零开始至少两周左右的学习效果比较好。
Unity的底层是使用C++开发,但对于Unity的使用者,只允许使用脚本进行具体游戏开发,从而回避了底层实现的复杂性,降低了开发难度。Unity支持的脚本主要是C#,过去还支持JavaScript和Boo等脚本,都逐渐被淘汰了,本书的范例都是使用C#。
Unity的C#和微软.Net家族中的C#是同一个语言,对于语言本身,二者是差不多的,但Unity的C#是运行在Mono平台上,微软的C#则是运行在.Net平台上,有一些针对Windows平台的专用C#类库,可能无法在Unity中使用。
1.3.1 安装Visual Studio
安装完成Visual Studio后,在Unity编辑器的菜单栏中选择【Edit】→【Preferences】打开设置窗口,选择【External Tools】,在External Script Editor中将外部脚本编辑器设为Visual Studio(早期的Unity自带了一个名为MonoDeveloper的C#编程工具,已经被淘汰),如图1-10所示。
图1-10 设置Visual Studio
1.3.2 编写脚本
接下来,我们将使用Unity完成一个Hello World程序,创建一个标准的Windows可执行程序,步骤如下:
步骤01 启动Unity,创建一个新的工程,在Project窗口中选择【Assets】,右击并选择【Create】→【C# Script】创建一个新的C#脚本,将脚本命名为HelloWorld.cs,如图1-11所示。
图1-11 创建新脚本
步骤02 双击HelloWorld.cs脚本文件将其打开,会发现里面已经被自动填充了一些基本代码。我们这里的任务是希望在屏幕上显示“Hello World”,添加代码如下:
HelloWorld.cs是一个Unity的脚本文件,HelloWorld是类的名称,它继承自Unity的基类MonoBehaviour。注意,Unity没有提供Main函数程序入口,Unity脚本必须作为组件依附于Game Object(游戏体)运行,因此不能使用关键字new创建Unity脚本实例,构造函数的功能也因此受到限制。
Start函数即是开始的意思,可以简单地把它理解为一个初始化函数;Update函数也是一个事件触发函数,它在每一帧都会被执行;OnGUI函数专门用来绘制UI界面,但在Unity4.6之后,已经不推荐使用OnGUI绘制UI界面,这里仅是为了快速显示UI文字。
步骤03 回到Unity编辑器,在Hierarchy窗口中选择Main Camera,选中摄像机,在菜单栏中选择【Component】→【Scripts】→【Hello World】,将脚本指定给摄像机(或者直接将脚本拖动到摄像机的Inspector窗口空白处。
运行游戏,即可看到Hello World显示在屏幕上,如图1-12所示。
图1-12 运行游戏
在Unity中,万物皆Game Object,摄像机只是一个加载了摄像机脚本的Game Object,实际上,Hello World脚本可以指定给任何Game Object运行。
1.3.3 编译输出
下面我们需要把程序编译输出为一个标准的Windows程序。
步骤01 在菜单栏中选择【File】→【Save Scene As】,将当前关卡保存在Asset目录内,这是一个后缀名为.unity的场景文件。可以看到,我们一共创建了两个文件:一个是脚本文件;另一个是关卡文件,如图1-13所示。
步骤02 确定前面保存的关卡处于打开状态,在菜单栏中选择【File】→【Build Settings】,打开Build Settings窗口,如图1-14所示。选择【Add Current】将当前关卡添加到【Scenes In Build】列表框中(也可以直接将关卡文件拖入框中),只有将关卡添加到这里,它才能被集成到最后创建的游戏中。
图1-13 脚本和关卡文件
图1-14 添加关卡
步骤03 最后还需要进行很多输出设置,这里我们只设置游戏的名称。在Build Settings窗口中选择【PlayerSettings…】,在Inspector窗口中将Product Name(产品名称)设为Hello World,如图1-15所示。
图1-15 设置游戏名称
步骤04 在Build Settings窗口中选择【Build】,然后选择保存路径即可将程序编译成独立运行的标准Windows程序。
本节的示例文件保存在资源文件目录\c01_Hello World中。