基础知识
Unity是一款3D跨平台次世代游戏引擎,“Unity”一词的中文解释为“团结”,好比集合所有人的力量一起来完成一件伟大的巨作一般,这款游戏引擎以其强大的跨平台特性与绚丽的3D渲染效果而闻名出众。该款游戏引擎的开发商是大名鼎鼎的Unity Technologies,近年来该公司处于飞速发展当中。起初Unity的版本为1.0.0,它只可部署在Mac OS下并且只能制作iPhone中的游戏。随着它不断发展与壮大,目前Unity的版本已经升级至3.5,可同时部署在Mac OS与Windows两种操作系统之上,横跨的主流游戏平台高达9种。而且其3D渲染效果也得到了大幅度提升。
目前全球的Unity注册用户已经超过6000万,国内首款Unity 3D PC网游《将魂》已震撼面市,开启了网络游戏的新纪元。此外,大量的Unity 3D网页游戏也涌现在我们的视线当中。在移动方面,苹果的App Store中有1500多款游戏是使用Unity进行开发的,Android平台中也有不少Unity制作的优秀游戏。总之,Unity近几年的蓬勃发展已经让它在游戏业内站稳脚跟,让越来越多的好游戏脱颖而出。未来,Unity还会融合更多炫酷的功能并且横跨更多的游戏平台,请大家拭目以待。
1.1 Unity简介
Unity是一款标准的商业游戏引擎,而商业引擎的主要特点有收费、封闭源码和功能强大。
关于收费情况,Unity的使用费用非常昂贵,最便宜的普通版许可证也需要400美元,加强版本为1500美元。当然许可证的版本不同,引擎支持的功能也就截然不同。具有加强版许可证的引擎的很多强大功能是有普通版许可证的引擎所不具备的。但是从学习的角度来说,无须购买许可证同样可以进行,因为许可证更大的用处在于游戏制作完成后的打包与发布,不购买许可证制作的游戏是无法发售的,不过,单就学习而言,我们完全无须购买许可证,选择免费的Unity即可。
游戏引擎的开源与闭源是两种主要的趋势,它们之间各有利弊。如果采取开源形式,那么为了学习与钻研引擎,使用人数肯定会大幅度提高,缺点是因为已经将源代码赤裸裸地发放,所以第三方对源码加以修改,容易造成不劳而获的情况。而封闭源码则可以让引擎更加安全,并且有效地保护引擎的知识产权。Unity就是采取完全封闭源码的形式。
Unity引擎的功能非常强大,其中一个显著特点就是跨平台游戏开发。跨平台开发无疑为开发者节省了大量时间。平台之间的差异会直接影响到开发进度,比如屏幕尺寸、操作方式、硬件条件等的不同会给开发者造成巨大的麻烦,因为在不同的平台中开发者需要花更多时间去做平台之间的移植开发,而将大量时间浪费在这上面并不值得。Unity几乎为开发者完美地解决了这一难题,将大幅度减少移植过程中一些不必要的麻烦,但使用它后也并非一点麻烦都不会产生。因为各平台的硬件条件是不同的,比如PC的硬件条件肯定会强于移动平台,所以开发者还需要针对不同的平台做一番取舍。
介绍完Unity的主要特点后,下面简要介绍一下开发环境。Unity可部署在Mac OS或Windows操作系统中,在这两种操作系统中,除了客户端操作习惯与界面有些差异以外,引擎自身的功能没有任何区别。学习Unity之前,请读者选择适合自己的操作系统。
1.2 下载与安装
在撰写本书之时,Unity官方的最新版本为Unity 3.5,所以书中将主要以Unity3.5进行讲解。后续如果Unity版本进行了升级,读者亦可在Unity官网下载最新版本并结合本书进行学习。因为Unity支持向下兼容,所以在新版本中同样可以运行书中的所有游戏例子,这点请读者放心。
首先我们登录Unity官网的下载地址开始下载Unity 3.5的安装包。打开Unity官方下载网页(如图1-1所示)后,点击右侧的Download Unity 3.5按钮,开始下载Unity的程序安装包。下载时,官网会检测下载此安装包所使用的操作系统从而进入对应的下载页面,比如读者使用Mac OS操作系统,下载Unity时下载页面就是Mac OS版本,使用Windows操作系统时,下载Unity时下载页面就是Windows版本。当然,也可自行选择下载的Unity程序包,在图中右下方点击“ Developing on Windows”链接可切换到Windows版本的下载页面,点击“Developing on Mac OS X”链接可切换到Mac OS版本的下载页面。
如图1-1所示,在Download Unity 3.5按钮下方,还有3个比较重要的链接,其含义如下所示。
System Requirements:系统需求,开发环境的硬件需求。
License Comparison:许可证对比,许可证版本之间的区别。
Release Notes:版本发布说明,这里包含Unity所有历史版本的发布说明以及它们的下载地址。
图1-1 Unity下载页面
目前Unity支持在Mac OS与Windows两种操作系统下编写游戏,本节我们将向读者详细介绍如何在这两种操作系统下搭建Unity开发环境。下面我们先介绍如何在Mac OS中搭建Unity开发环境。
1. 在Mac OS下安装Unity
下载完毕后,可以看到Unity 3.5的安装包,双击它后即可进行Unity的安装。这里需要说明的是,在首次安装Unity时需要联网注册,只有注册成功后才可以使用Unity。启动Unity 3.5安装包后,程序将弹出Unity的注册向导界面,如图1-2所示。
图1-2 注册向导界面
在页面下方点击”Register“按钮后,此时将进入Unity激活界面,如图1-3所示。在激活界面中,首先需要选择激活方式。激活方式有联网激活(Internet activation)与手动激活(Manual activation)两种。联网激活适用于未购买Unity许可证的用户,而手动激活适用于已购买许可证的用户,这里我们选择”Internet activation“进行联网激活。
图1-3 Unity激活页面
点击”Next“按钮,程序会自动帮我们打开Unity联网激活的页面,如图1-4所示。为了完成激活,读者需要按照提示正确填写注册的相关信息,它们包括开发者邮箱与公司地址。内容填写完毕后,直接点击”Free“按钮免费激活Unity。
这里需要说明一下,Unity的试用期只有30天。我们知道Unity的许可证可分为普通版与加强版两种,普通版本只具备Unity的基本功能,而加强版本更为强大,比如增强了3D特效、特殊的光影效果、3D渲染特效等。然而30天的使用期限是针对于加强版本的,30天后将无法继续免费使用加强版本中的功能,需要缴费购买许可证,但是普通版本的功能仍然可以继续使用。关于普通版本与加强版本两者的详细区别,读者可点击”License Comparison“按钮进行查看。
图1-4 联网激活页面
点击”Free“按钮后,程序将打开注册完成界面,如图1-5所示,这表示Unity的 Mac OS版本已经彻底在本机中注册完毕,然后在界面中点击下方的”Finish“按钮,开始我们Unity学习之旅。
图1-5 注册完成
需要说明的是,Unity注册向导只会在本机第一次安装Unity时出现,注册完毕即表示安装成功。后续如果读者需要覆盖安装或者升级,只需打开Unity程序安装包,根据提示点击下一步即可。
2. 在Windows下安装Unity
在Windows下安装Unity与在Mac OS下安装有细微的差别。首先下载Unity 3.5 Windows版本,然后打开它开始安装。
在Windows中首次安装Unity同样需要注册,由于注册方法与Mac OS完全一样,这里就不再赘述。但是在Windows下注册完毕后,需要进行安装,具体操作如下:首先按照Mac OS中的注册方法在本机完成注册,然后程序将弹出安装Unity界面,如图1-6所示。
点击”Next“按钮,将进入安装说明界面,如图1-7所示。
安装前,请仔细阅读安装说明,确保无误后点击 “I Agree” 按钮继续安装,此时将进入Unity选择安装界面,如图1-8所示。除了安装Unity主程序外,还可选择性安装一些插件或工具。下面简单介绍一下这些安装组件。
Unity:主程序,必须安装。
Example Project:示例程序,可供用户参考。
Unity Development Web Player:Web开发者安装包。
MonoDevelop:脚本编辑器,强烈建议安装。
图1-6 开始安装
图1-7 安装说明界面
图1-8 选择安装界面
选择完插件与工具后,点击”Next“按钮,将打开确认安装界面,如图1-9所示,点击”Browse…“按钮,可设定Unity程序的安装路径。
图1-9 确认安装界面
选择安装路径后,点击”Install“按钮,程序将开始自动安装。此时需要耐心等待一会儿,安装完毕后,程序将进入最后的安装完成界面,如图1-10所示,然后点击”Finish“按钮,将彻底完成Unity的安装。如果在界面中勾选”Run Unity 3.5.0f5“复选框,安装完毕后Unity将自动被打开。
图1-10 完成安装
1.3 游戏界面对比
安装完Unity后,我们来打开它,首先映入我们眼帘的就是Unity的编辑器界面。在Mac OS 与Windows下,Unity的界面非常相似,并且它们之间的功能也都完全一样,包括制作游戏的方法、脚本的编写以及打包的过程等。它们之间唯一的一点小区别就是导航菜单栏的位置不太一样,但是导航菜单栏中的选项与功能都是完全一样的。所以说,无论在Mac OS中使用Unity还是在Windows中使用Unity,其开发过程完全一样。下面我们首先在Mac OS下打开Unity的界面。
1. Mac OS下的Unity界面
根据Mac OS操作系统自身的习惯,Unity的导航菜单栏位于屏幕顶部,如图1-11所示,其优点是它不会因为鼠标拖动下方引擎界面而发生位置的改变。导航菜单栏中包括Unity非常重要的一些功能,后面会向读者详细介绍其中的含义。
图1-11 导航菜单栏
首次进入Unity时会弹出欢迎窗口(如图1-12所示),如果不设置关闭,每次打开Unity时都会自动打开这个窗口,其有一些选项可以帮助我们学习Unity,下面介绍一些这些选项的具体含义。
Video Tutorials:视频学习教程,这些都是Unity官方推荐的视频教程,它们非常全面,只可惜都是英文的。
Unity Basics:使用事项,涵盖引擎自身的一些配置参数以及对电脑硬件的需求等。
Unity Answers:问题与回答,读者可在这里与世界各地的朋友一起讨论Unity游戏开发。
Unity Forum:Unity官方创建的开发者论坛。
Unity Asset Store:资源商店,这里聚集着很多游戏开发所需的资源,有免费的也有收费的。
图1-12 Mac OS下的Unity界面
2. Windows下的Unity界面
图1-13为Windows下进入Unity的主界面效果图。和Mac OS下基本相同,只是界面的颜色与导航菜单栏的位置有点小小的区别,在Windows下Unity导航菜单栏可随窗口移动,而在Mac OS中,它则位于屏幕顶部。
图1-13 Windows下的Unity界面
1.4 购买许可证
Unity是一款收费的游戏引擎,读者可登录官网查看Unity许可证的购买地址与方式。
目前,可使用欧元、美元和日元购买Unity的许可证。如图1-14所示,打开Unity的购买网址,在”Store“的子页面标题中选择”Products“页面,在下方Unity版本中选择一个需要购买的版本,左侧为普通版本,右侧为加强版本,然后在右侧的下拉列表中选择购买Unity的币种。
图1-14 选择购买版本
选择完购买版本后,可以继续购买Unity配置插件。插件可以更好地帮助Unity开发游戏,目前配置插件只包括移动开发的Android平台与iOS平台,分为普通插件与加强插件。Team License为团队许可证,多台电脑可使用Team License同时进行开发。如图1-15所示,其中已经列出了详细的购买参数。
图1-15 选择配置插件
选择完合适的版本与插件后,点击右下角的”Add to Cart“按钮,将弹出确认购买页面,如图1-16所示,其中将出现之前选择购买的Unity版本与配置插件。确认无误后,点击”Check Out“按钮开始购买,系统将调出信用卡支付界面,根据提示即可完成购买。
图1-16 确认购买页面
这里需要说明的是,购买时需要登录自己的Unity账号,如果之前没有注册账号,系统会提示你注册,或者自己登录官网注册,注册Unity的网址如下:https://store.unity3d.com/users/new。
如果已经购买过Unity许可证,比如之前购买的许可证是普通版本,既可以继续购买新版本,也可以为许可证进行加强版升级。不过升级也需要付款,支付金额与升级选项均与已有版本相关。如图1-17所示,在”Store“的子页面中选择”My Licenses“页面,登录Unity,然后就可以继续购买或升级自己的许可证。
图1-17 升级
许可证购买成功后,会得到Unity提供的一串序列号,这串序列号需要在Unity程序中进行激活。在Unity导航菜单栏中选择”Unity“→”Enter Serial Number“菜单项,如图1-18所示,接着输入购买的许可证序列号即可完成激活。
图1-18 输入序列号
然后在导航菜单栏中选择”Unity“→”About Unity“菜单项,将弹出”About Unity“页面,如图1-19所示,许可证类型与序列号出现在界面的右下角。
图1-19 “About Unity”界面
1.5 打包与发布
首先我们需要找一个游戏工程来学习如何打包与运行游戏,在Unity官网中有很多可免费下载的示例程序,这是相当珍贵的学习资料。
下面我们介绍如何打包与发布游戏。首先选择一个比较完整的游戏示例来进行讲解,根据上述的下载地址将游戏工程“AngryBots”下载至本地。启动Unity,在导航菜单栏中选择“File”→“Open Project”菜单项,打开一个现有的游戏工程,这里我们选择打开刚才下载的“AngryBots”游戏工程。
默认情况下,打开游戏工程后,场景视图与游戏视图中是不存在任何游戏资源的,需要打开当前游戏对应的某个场景文件。如图1-20所示,我们打开“AngryBots”这个场景文件,此时场景视图与游戏视图中出现了该场景文件中游戏的所有资源。不同场景对应的游戏资源也会不一样,所以直接打开对应的场景文件即可。
如图1-20所示,在Unity界面右上角的下拉列表用于设置Unity界面的整体布局,默认布局为“Wide”,我习惯使用“2 by 3”布局,读者也可根据自己的喜好选择适当的界面布局。
游戏制作完毕后,需要进行平台打包才能最终发布。由于我已经购买了iOS平台的Unity许可证,所以本节将以iOS平台打包为例向读者介绍打包过程。
首先在Unity导航菜单栏中选择“File”→“Build Settings”菜单项,打开“Build Settings”窗口,如图1-21所示,在打包平台中选择iOS,然后点击右下角的“Build And Run”按钮,此时Unity将帮我们自动生成对应iOS平台的Xcode游戏工程。其他平台的游戏包制作方法与iOS平台完全一样。只需选择对应的打包平台,Unity遍可轻松实现跨平台游戏打包与发布。
注意 Xcode是苹果公司免费向开发人员提供的集成开发环境,用于开发Mac OS X应用程序。Xcode从3.1开始附带iOS SDK。
图1-20 界面布局
图1-21 “Build Settings”窗口
构建完iOS工程后,Unity会自动生成对应的Xcode游戏工程,其中包括运行在iOS平台下的所有Objective-C代码。使用Xcode打开Unity生成的游戏工程后,点击运行游戏按钮,构建的游戏工程与运行效果图将出现在我们面前,如图1-22所示。
图1-22 运行效果
在Windows下打包与运行的方式与Mac下完全一样,同样是在Unity导航菜单栏中选择“File”→“Build Settings”菜单项,此时打开Build Settings对话框,如图1-23所示,在打包游戏平台中选择Unity 3.5版本最新支持的Flash Player格式(目前免费),因为Flash Player格式需要Java虚拟机的支持,所以在构建项目之前请确保电脑中配置了Java环境。确保无误后,点击右下角的“Build and Run”按钮,即可在Windows下创建自己的项目。
图1-23 在Windows下打包与运行
项目构建完毕后,Unity会将Flash文件生成在指定路径当中。找到生成的Flash文件,打开它即可在Windows下运行该Flash游戏,如图1-24所示。怎么样?跨平台开发很酷吧。
图1-24 打包与运行
上面我们介绍了Unity在iOS平台下的打包过程。Unity在iOS平台下打包后,会将整个Xcode工程提供给开发者,而其他平台不会像iOS那样将源代码提供给开发者,而仅提供一个可运行的文件,比如在Android平台中打包后将生成一个.apk包,PC and Mac平台下打包后生成对应的.exe与mac应用程序,Flash Player平台下打包后生成.swf格式的运行程序,WebPlayer平台下打包后生成网页格式的运行程序。
实际开发中可以通过消息传递或者插件的形式将游戏平台的相关代码加入到Unity工程中。例如,在Android平台下,Unity中无法使用Android系统提供的高级控件,可以将Android下的Java代码以插件的形式放在Unity工程中,最终通过传递消息的形式通知插件调用Android高级控件的方法。
1.6 本章小结
本章主要向读者介绍了学习Unity的基础知识,开发Unity 3D游戏之前的一切准备工作。首先介绍了Unity这款商业游戏引擎的特点,之后分别以Mac OS和Windows平台为例,简明扼要地介绍了这两种操作系统下Unity引擎的环境搭建以及它们之间的一些区别。然后介绍了Unity这款商业引擎的购买方式,学习了如何购买Unity及其相关配置插件。最后介绍Unity跨平台打包与运行的过程,以Mac OS下iOS平台与Windows下Flash平台为例向读者展示了完整的打包与制作方法。作为Unity学习的基础,希望读者们认真学习本章内容,为后续章节的学习做好铺垫。
……
展开
——Unity圣典
Unity 3D跨平台游戏引擎以迅雷不及掩耳之势出现在我们面前,横跨9种主流游平台,具有出色的物理引擎以及3D渲染效果。当你在Unity开发门外徘徊时,本书绝对值得你阅读。此外,每章最后都有一个游戏示例引导你快速上手Unity开发。
——51CTO产品部副经理老友
与其他游戏引擎相比,Unity最显而易见的特点就是,一次开发即可轻松部署到Windows、Mac、iOS、Android、Wii、PS3等平台,告别以往高难度的、耗时的跨平台游戏开发,使快速、高质量的游戏开发成为可能。本书详尽介绍了Unity的安装、使用及深入开发等,并通过相应的实例来巩固知识点,是快速入门及提高Unity技术的必备书。愿本书能给我们大家带来越来越多由Unity开发的优秀游戏!
——Unity资深用户四角钱