Unity 游戏开发技术详解与典型案例

978-7-115-49430-6
作者: 吴亚峰 徐歆恺 苏亚光
译者:
编辑: 张涛
分类: Unity

图书目录:

详情

本书通过对Unity 3D集成开发环境的搭建,集成开发环境各个界面的详细介绍,再到脚本的编写、开发过程中经常应用的技术和对象的讲解,以及最后的综合案例,给读者以由浅入深、循序渐进的学习过程,相信每一位读者都会通过本书得到意想不到的收获。

图书摘要

版权信息

书名:Unity 游戏开发技术详解与典型案例

ISBN:978-7-115-49430-6

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

编  著 吴亚峰 徐歆恺 苏亚光

责任编辑 张 涛

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315


本书对Unity 3D集成开发环境界面、脚本的编写和众多高级特效的实现进行了详细介绍。全书共分16章。主要内容包括:Unity 3D基础、Unity 3D集成开发环境、Unity脚本的开发、Unity图形用户界面基础、物理引擎、着色器、常用着色器特效、3D游戏开发的常用技术、光影效果的使用、模型与动画、地形与寻路技术、游戏资源的更新、多线程技术与网络开发、Unity 2D游戏开发、常用性能优化技术、休闲游戏等。

本书适合各个层级Unity 3D应用开发人员阅读,也可供相关专业人士参考。


彩图1 Unity集成开发环境

彩图2 Unity脚本程序开发

彩图3 音乐播放器案例

彩图4 粒子系统演示案例

彩图5 机械手案例

彩图6 交通工具案例

彩图7 物理引擎在动画系统中的使用案例

彩图8 体积雾案例

彩图9 着色器综合案例

彩图10 Bloom效果

彩图11 积雪效果

彩图12 景深效果

彩图13 水特效案例

彩图14 法线贴图

彩图15 真实水面倒影案例

彩图16 镜头光晕案例

彩图17 模型动态切割案例

彩图18 刹车痕迹演示案例

彩图19 导航网络自定义路线

彩图20 平衡球大案例1

彩图21 平衡球大案例2

彩图22 平衡球大案例3

彩图23 平衡球大案例4


近几年,Android游戏、iPhone游戏及网页游戏发展迅猛,并且已经成为带动游戏产业发展的新生力量。遗憾的是,目前除了少数的成功作品外,大部分的游戏属宣传攻势大于内容品质的平庸之作。面对这种局面,3D游戏成为独辟蹊径的一种选择,而为3D游戏研发提供强大技术支持的Unity 3D引擎,以其创造高质量的3D游戏和真实视觉效果的核心技术,为开发3D游戏提供了强大的动力。

Unity 3D是由Unity Technologies开发的一个用于创建三维视频游戏、三维动画等的综合游戏开发工具,是一个技术全面的专业游戏引擎。

本书讲述了Unity 3D集成开发环境的搭建、集成开发环境的各个界面,讨论了脚本的编写、开发过程中经常应用的技术和对象,并给出了综合案例。相信每一位读者都会通过本书得到意想不到的收获。

未来几年必定是Unity 3D大行其道的时代,因其开发群体迅速扩大,Web Player装机率快速上升,Unity 3D迅速爆发的时机已经到来。

最近几年Unity 3D迅猛发展,该游戏引擎通过不断地优化与改进已经升级到2017版。在Unity 3D 2017中增加了许多新的特性,如推出了Video Player、加入了多场景编辑功能、实现了动画剪辑等。相应地,本书在第1版的基础上,加入了许多新的内容,同时,对上一版书稿中的诸多不足进行了改进。

经过近一年见缝插针式的奋战,本书终于交稿了。回顾写书的这段时间,不禁为自己能最终完成这个耗时费力的“大厚书”而感到欣慰,同时也为自己能将从事游戏开发10余年积累的宝贵经验及编程感悟分享给正在开发阵线上埋头苦干的广大编程人员而感到高兴。

本书在组织上本着“起点低,终点高”的原则,内容覆盖了从学习Unity 3D必知必会的基础知识到基于着色器语言所实现的高级特效,最后还给出了一个完整的大型3D游戏案例。这样的内容组织可使初学者一步一步成长为3D游戏开发达人,满足绝大部分想学习3D游戏开发的技术人员与学生以及正在学习3D游戏的开发人员的需求。

本书针对每个需要讲解的知识点都给出了丰富的插图与完整的案例,可使初学者快速上手,有一定基础的读者进一步深入。书中所有的案例均是作者根据多年的开发心得进行设计的,结构清晰明朗,便于读者学习与参考。另外,书中还给出了作者多年来积累的很多编程技巧及心得,具有很高的参考价值。

为了便于读者的学习,随书资源包含了书中所有案例的完整源代码,最大限度地帮助读者快速掌握开发技术。

本书包括16章,按照必知必会的基础知识、基于Unity 3D集成开发环境及真实大型游戏案例的顺序进行详细讲解。主要讲解的主题如下表所示。

主题名

主要内容

Unity基础及集成开发环境的搭建

简要介绍了Unity的诞生、特点、集成开发环境的搭建及运行机制

Unity集成开发环境详解

详细介绍Unity集成开发环境

Unity脚本程序的开发

介绍Unity中脚本的编写,主要讲解特定于Unity的C#脚本编写的语法和技巧

Unity图形用户界面基础

详细介绍Unity开发过程中经常使用的组件及对象

物理引擎

介绍Unity开发平台下完整的物理引擎,包括刚体、碰撞器、粒子系统、关节、交通工具及布料等知识

着色器——Shader

介绍Unity中着色器的开发和着色器语言——ShaderLab,为各种高级特效的开发打下良好的基础

常用着色器特效

介绍了游戏开发过程中经常会使用的一些着色器特效,如边缘发光、描边效果、菲涅尔效果、遮挡透视效果、积雪效果等

3D游戏开发的常用技术

介绍天空盒、虚拟按钮与摇杆、声音、水特效、3D拾取、重力加速度传感器及雾特效等开发常用的技术

光影效果的使用

介绍Unity中经常使用的光影效果,主要包括各种光源、光照烘焙、法线贴图、阴影、镜面特效、波动水面真实效果及立方图纹理等技术

模型与动画

介绍Unity中模型网格的概念及新旧动画系统,其中着重介绍最新的Mecanim动画系统

地形与寻路技术

介绍Unity自带的地形引擎、拖尾渲染器及导航网格和寻路系统等知识

游戏资源的更新

介绍AssetBundle更新资源包的使用及Lua热更新

多线程技术与网络开发

介绍Unity中的多线程技术与网络开发

Unity 2D游戏开发

介绍Unity 3D在4.3版本开始加入的2D游戏开发工具

常用性能优化技术与编辑器的扩展

介绍Unity 3D提供的Profiler工具的使用方法,以及断点调试的两种方式,并讲解实际开发过程中两种非常实用的优化技术

休闲游戏——平衡球

详细介绍完整的实际游戏案例项目——平衡球的开发过程及用到的各种相关技术

本书内容丰富,涵盖从基本知识到高级特效,从简单的应用程序到完整的3D游戏案例等内容,适合以下读者阅读。

本书讲解了在Unity平台下进行3D应用开发各方面的知识,内容由浅入深,配合详细的案例,非常适合初学者循序渐进地学习。通过学习本书,读者最终会成为3D游戏应用开发的达人。

本书不仅包含了Unity 3D开发的基础知识,同时也包含了基于着色器语言、高级光影效果、动画等技术所实现的高级特效,以及Unity 3D强大的物理引擎与完整的游戏案例,有利于有一定3D开发基础的开发人员进一步提高开发水平。

由于Unity 3D是可以进行跨平台发布的,可以开发基于各个平台的项目,因此本书适合各种平台的3D开发人员学习与使用。

本书中所有的案例项目及源代码都包含在随书资源中,在正文中当提到第几章下面的某个项目目录时,实际指的是资源中此章目录下同名的zip压缩包。在实际使用中,读者需要将所需的压缩包复制到自己的计算机上并解压缩。

吴亚峰,毕业于北京邮电大学,后留学澳大利亚卧龙岗大学并取得硕士学位。1998年开始从事Java应用的开发,有10多年的Java开发与培训经验。目前主要的研究方向为OpenGL ES、Vulkan、VR/AR、手机游戏,同时为手机游戏、OpenGL ES独立软件开发工程师。现任职于华北理工大学并兼任华北理工大学以升大学生创新实验中心移动及互联网软件工作室负责人。10多年来不但多次指导学生制作手游作品并获得多项学科竞赛大奖,还为数十家著名企业培养了上千名高级软件开发人员。曾编写《OpenGL ES 3.x游戏开发(上下卷)》《Unity 3D游戏开发标准教程》《Unity 5.X 3D游戏开发技术详解与典型案例》《Unity 4 3D开发实战详解》《Android应用案例开发大全(第1版~第4版)》《Android游戏开发大全(第1版~第4版)》等畅销技术图书。2008年年初开始关注Android平台下的3D应用开发,并开发出一系列优秀的Android应用程序与3D游戏。

徐歆恺,中国矿业大学(北京校区)博士,长期从事人机交互和多媒体技术方面的教学和研究工作。自2010年以来转战移动应用开发,多次组织Google Android培训并担任主讲,曾荣获Google 2016年奖教金。

苏亚光,哈尔滨理工大学硕士,从业于计算机软件领域10余年,在软件开发和计算机教学方面有着丰富的经验,曾编写《Android游戏开发大全》《Cocos2d-x 3.x 游戏案例开发大全》《Android应用案例开发大全》等畅销技术图书。2008年开始关注Android平台下的应用及游戏开发,参与开发了多款手机2D/3D游戏应用。

在编写本书过程中,作者得到了唐山百纳科技有限公司Java培训中心的大力支持,同时蒋迪、韩金铖、许凯炎、董杰及作者的家人为本书的编写提供了很多帮助,在此表示衷心的感谢!

由于作者的水平和学识有限,且书中涉及的知识较多,难免有不妥和疏漏之处,恳请广大读者批评指正,并提出宝贵意见,编辑联系邮箱为zhangtao@ptpress. com.cn。

作 者


本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。

本书配套资源包括书中示例的源代码。

要获得以上配套资源,请在异步社区本书页面中单击,跳转到下载界面,按提示进行操作即可。注意,为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。

如果您是教师,希望获得教学配套资源,请在社区本书页面中直接联系本书的责任编辑。

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,单击“提交勘误”,输入勘误信息,单击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。

如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。

“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。

异步社区

微信服务号


本章主要介绍Unity的基础知识及Unity集成开发环境的搭建,通过对本章的学习,读者将对Unity有一个大致的了解。本书提供配套的案例,读者可以方便地将随书资源中的各个项目案例导入自己计算机上的Unity中进行效果预览和其他操作。

本节介绍Unity的发展历史及其独具特色的特点,主要内容包括初识Unity、Unity的诞生及发展、Unity广阔的市场前景、独具特色的Unity等。通过对本节的学习,读者将对Unity有一个基本的认识。

Unity是由Unity Technologies开发的一个轻松创建三维视频游戏、建筑可视化、实时三维动画等互动内容的、多平台的综合型游戏开发工具,是一个技术全面的专业游戏引擎。通过Unity简单的用户界面,玩家可以完成任何工作。

与Director、Blender Game Engine、Virtools和Torque Game Builder等游戏引擎类似,Unity采用图形化的方式与开发人员交互。其内置的NVIDIA PhysX物理引擎能带给玩家真实的体验,同时可以将三维图形实时与音频流、视频流混合。

其编辑器运行在Windows和Mac OS X下,可将游戏发布至Windows、Mac、Wii、iPhone和Android平台,也可以利用Unity Web Player插件发布网页游戏,支持Mac和Windows的网页浏览,并且Unity的网页播放器也被Mac Widgets所支持。

通过前面小节的学习,相信读者对Unity有了一个简单的认识。Unity现在已经是移动游戏领域较为优秀的游戏引擎了,能在从诞生到现在这么短的时间取得如此成绩,Unity可谓生逢其时。为了让读者对Unity有更进一步的了解,本小节将为读者介绍Unity的发展史。

近几年来,Android平台游戏、iPhone平台游戏及Web的网页游戏发展迅猛,已经成为带动游戏发展的新生力量。遗憾的是,目前除了少数的作品成功外,大部分游戏属宣传攻势大于内容品质的平庸之作。

面对这种局面,3D游戏成为独辟蹊径的一种选择,Unity 3D是如今绝大多数游戏开发团队的首选3D引擎,并且它在2D上的表现也极为优秀。它可以轻松解决很多其他引擎不能解决的问题,其对DirectX和OpenGL拥有高度优化的图形渲染管道,以其创造高质量的3D游戏和真实视觉效果的核心技术,为开发3D游戏提供了强大的动力。

 提示 

Unity游戏引擎后来居上,在近几年发行的几款风靡一时的iPhone和Android平台上的游戏都选择了这款游戏引擎,如《炉石传说》《王者之剑》《王者荣耀》等。

Unity不仅在游戏领域里有广阔的应用,它还可以用于3D虚拟仿真、大型产品3D展示、3D虚拟展会、3D场景导航及一些精密仪器使用方法的演示等,可谓应用领域非常广泛。

Unity 3D游戏引擎技术研讨会最早于2011年5月在韩国举行。据悉,现在有10种以上的新引擎开发都采用了Unity游戏引擎技术。现已有部分开发商利用China Joy展会的契机,展示了该引擎的运行效果,目前已有很多厂商与开发商签订了提前预订引擎的协议。

 提示 

Unity游戏引擎可以帮助开发人员制作出炫丽的3D效果,并可实时查看。目前,Unity游戏引擎已推出了对应iPhone、iPad、PC、Mac、Android、Flash Player、WebGL、Wii、PS3、PS4、PS Vita、Gear VR、Oculus Rift、Daydream等平台的版本,促进了游戏跨平台的应用。读者要做的只是在编辑器中选择使用哪一个平台来预览游戏作品。

未来几年必定是Unity大行其道的时代,因其开发群体迅速扩大,Web Player装机率快速上升,Unity迅速爆发的时机已经到了。

通过对前面内容的学习,相信读者已经对Unity有了一个基本的认识。Unity在游戏开发领域中以其独特、强大的技术理念征服了全球众多的业界公司及游戏开发人员。本小节将介绍Unity的特点,帮助读者进一步学习Unity。

1.Unity本身所具有的特点

Unity简单的用户界面是层级式的综合开发环境,具备视觉化编辑、详细的属性编辑器和动态的游戏预览特性。由于其强大的综合编辑特性,因此,Unity也用来快速制作游戏或者开发游戏原型,如图1-1所示。

▲图1-1 综合编辑

Unity的图形引擎使用的是DirectX 12、Vulkan和自有的APIs(Wii),可以支持Bump Mapping、Reflection Mapping、Parallax Mapping、Screen Space Ambient Occlusion、动态阴影所使用的Shadow Map技术与Render-to-Texutre和全屏Post Processing效果。

项目中的资源会被自动导入,并根据资源的改动自动更新。虽然很多主流的三维建模软件为Unity所支持,但Unity对3ds Max、Maya、Blender、Cinema 4D和Cheetah 3D的支持比较好,并支持一些其他的三维格式。

Unity可一次构建,全局部署,实现最大用户规模。使用Unity游戏引擎开发的项目能发布到移动、桌面、主机、TV、VR、AR及网页平台上,如Android、iOS、Windows、PS4、Gear VR、tvOS、SteamVR PS&Mac等,如图1-2所示。

▲图1-2 一键部署

着色器编写使用ShaderLab语言,同时支持自有工作流中的编程方式或CG(C for Graphics)、GLSL(OpenGL Shading Language)语言编写的Shader。着色器对游戏画面的控制力就好比在Photoshop中编辑数码照片,在高手手里可以营造出各种惊人的画面效果。图1-3为着色器的渲染效果。

▲图1-3 着色器的渲染效果

一个着色器可以包含众多变量及一个参数接口,允许Unity去判定参数是否为当前所支持并适配的最适合参数,并选择相应的着色器类型以获得更高的兼容性。因此,Unity的着色器系统具有易用、灵活和高性能的特性。

Unity内建强大的地形编辑器,支持地形创建、树木与植被贴片及自动的地形LOD(Levels of Detail,多层次细节),而且支持水面特效,尤其是低端硬件也可流畅运行广阔、茂盛的植被景观,还可以使用TreeEditor编辑树木的各部位细节,如图1-4和图1-5所示。

▲图1-4 地形

▲图1-5 编辑树木

现在大部分的游戏是联网的,令人惊喜的是,Unity内置了强大的多人联网游戏引擎,具有Unity自带的客户端和服务器端,省去了并发、多任务等一系列烦琐而困难的操作,可以简单地完成所需任务。多人网络连线采用Raknet,可以实现单人游戏和全实时多人游戏。

物理引擎是一个计算机程序模拟的牛顿力学模型,需使用质量、速度、摩擦力和空气阻力等变量,可以用来预测不同情况下的效果。Unity内置NVIDIA强大的PhysX物理引擎,可以方便、准确地开发出所需要的物理特效。

PhysX可以由CPU(Central Processing Unit,中央处理器)计算,但其程序本身在设计上还可以调用独立的浮点处理器来计算,如GPU(Graphics Processing Unit,图形处理器)和PPU(Physics Processing Unit,物理运算处理器),也正因为如此,它可以轻松完成像流体力学模拟那样的大计算量的物理模拟计算。另外,PhysX物理引擎还可以在包括Windows、Linux、Xbox360、Mac、Android等在内的全平台上运行。

音效系统基于OpenAL程式库,可以播放Ogg Vorbis的压缩音效,视频播放采用Theora编码,并支持实时三维图形混合音频流和视频流。

▲图1-6 脚本

OpenAL主要的功能是在来源物体、音效缓冲和收听者中编码。来源物体包含一个指向缓冲区的指标、声音的速度、位置和方向及声音强度;收听者包含收听者的速度、位置和方向及全部声音的整体增益;音效缓冲里包含8或16位元、单声道或立体声PCM格式的音效资料。表现引擎进行所有必要的计算,如距离衰减、多普勒效应等。

游戏脚本为基于Mono的Mono脚本,是一个基于.NET Framework的开源语言,因此,开发人员可用JavaScript、C# Script进行编写,如图1-6所示。

 提示 

由于JavaScript和C# Script语言是目前Unity开发中比较流行的语言,同时考虑到脚本语言的通用性,因此,本书采用JavaScript和C# Script两种脚本语言编写脚本,以给读者带来更多的选择。

Unity资源服务器具有一个支持各种游戏和脚本版本的控制方案,其使用PostgreSQL作为后端。它可以保证在开发过程中多人并行开发,保证不同的开发人员使用不同版本的开发工具所编写的脚本能够顺利地集成。

Unity提供了具有柔和阴影与光照图(Lightmap)的高度完善的光影渲染系统。光照图是包含视频游戏中面的光照信息的一种三维引擎的光强数据。光照图是预先计算好的,而且要用在静态目标(Static Object)上。

Unity融入了Geomerics行业领先的实时全局光照技术Enlighten,Enlighten是目前仅有的,为实现PC、主机和移动游戏中的完全动态光照效果而进行了优化的实时全局光照技术。Enlighten的实时技术也极大地改善了工作流程,使美工和设计师能够直接在Unity编辑器中为所有游戏风格创建引人入胜的逼真视觉效果。Enlighten实时全局光照效果如图1-7所示。

▲图1-7 Enlighten实时全局光照效果

 说明 

静态目标在三维引擎里是区别于动态目标(Dynamic Object)的一种分类。

当今的游戏市场中2D游戏仍然占据着很大的市场份额,尤其是对于移动设备如手机、平板电脑等来说,2D游戏仍然是一种主要的开发方式。针对这种情况,Unity在4.3版本以后正式加入了Unity 2D游戏开发工具集。

使用Unity 2D游戏开发工具集可以非常方便地开发2D游戏,利用工具集中的2D游戏换帧动画图片的制作工具可以快速制作2D游戏换帧动画。Unity为2D游戏开发集成了Box2D物理引擎,并提供了一系列2D物理组件,通过这些组件可以非常简单地在2D游戏中实现物理特性。

Unity是全球应用最广的VR开发平台,91%以上的HoloLens应用均使用Unity制作。无论是VR、AR或MR(Mix Reality,混合现实),都可以通过Unity高度优化的渲染管线与编辑器快速迭代能力将XR(Xtended Reality,扩展现实)创意带入现实。它支持所有新型主流平台,原生支持Oculus Rift、Steam VR/Vive、Playstation VR、Gear VR、Daydream等。

Unity Analytics分析服务为游戏而生,其原生集成到Unity,无须安装SDK,能够为开发人员提供指定信息用于调整游戏玩法与多个平台的最佳体验,并帮助开发人员实现利益最大化。

编辑器中包含Unity的资源商店窗口,其中的资源可以直接用于Unity项目,从而可以加快开发进度,降低开发成本。资源商店中包含模型、脚本、插件等多种资源,如图1-8所示。

▲图1-8 资源商店

2.Unity的跨平台特性

与Director、Blender Game Engine、Virtools和Torque Game Builder等游戏引擎类似,Unity采用图形化的方式与开发人员进行交互。其编辑器运行在Windows和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone和Android平台,也可以利用Unity Web Player插件发布网页游戏,支持Mac和Windows的网页浏览。

现在市面上已经推出了很多由Unity开发的基于Android平台、iPhone平台、PC平台及VR平台的大型3D网页游戏,这些游戏都得到了很高评价。接下来将分别介绍这几类游戏。

Unity可以基于Android平台进行游戏开发,由于其自身存在的优势,开发出来的游戏也让人赏心悦目,赞不绝口。

例如,《捣蛋猪》是Rovio Entertainment继《愤怒的小鸟》之后的又一款力作,如图1-9所示;由暴雪开发的《炉石传说》,如图1-10所示;由Glu Mobile开发的《血之荣耀2:传奇》,如图1-11所示;由蓝港在线开发的《王者之剑2》,如图1-12所示。

▲图1-9 《捣蛋猪》

▲图1-10 《炉石传说》

▲图1-11 《血之荣耀2:传奇》

▲图1-12 《王者之剑2》

Unity还可以基于iPhone平台进行游戏开发,由于其自身存在的优势,可以制作出绚丽多彩的iPhone平台游戏。例如,由腾讯游戏天美工作室开发的《王者荣耀》,如图1-13所示;由Defiant Development Pty.Ltd开发的《滑雪大冒险》,如图1-14所示;由YANSHU SUN开发的《崩坏学园2》,如图1-15所示;由Crescent Moon Games LLC开发的Slingshot Racing,如图1-16所示。

▲图1-13 《王者荣耀》

▲图1-14 《滑雪大冒险》

▲图1-15 《崩坏学园2》

▲图1-16 Slingshot Racing

Unity可以基于PC(Windows/Mac)平台进行游戏开发,强大的图像渲染能力让游戏看起来更加绚丽多彩。

例如,由Abrakam工作室开发的卡牌游戏Faeria,如图1-17所示;由BKOM工作室开发的角色扮演类游戏Tales from Candlekeep: Tomb of Annihilation,如图1-18所示;由大宇资讯股份有限公司开发的《轩辕剑陆:凤凌长空千载云》,如图1-19所示;由软星科技有限公司制作的一款单机角色扮演游戏《仙剑奇侠传六》,如图1-20所示。

▲图1-17 Faeria

▲图1-18 Tales from Candlekeep: Tomb of Annihilation

▲图1-19 《轩辕剑陆:凤凌长空千载云》

▲图1-20 《仙剑奇侠传六》

Unity也可以开发基于Web的大型3D网页游戏,网页游戏不用下载客户端,也是近几年比较流行的一种游戏类型,市面上已经推出了很多3D网页游戏。

例如,由骏梦游戏开发的《新仙剑奇侠传online》,如图1-21所示;由上海友齐信息技术有限公司开发的《坦克英雄》,如图1-22所示;由昆仑在线开发的《绝代双骄》,如图1-23所示;由厦门梦加网络科技有限公司开发的《蒸汽之城》,如图1-24所示。

▲图1-21 《新仙剑奇侠传online》

▲图1-22 《坦克英雄》

▲图1-23 《绝代双骄》

▲图1-24 《蒸汽之城》

用Unity除了可以开发传统平台的游戏外,还能开发像HTC Vive、Oculus Rift这些VR平台的游戏,而且随着VR设备的逐步升级,VR应用与游戏也成为一个热门的新兴领域。

例如,Valve官方推出的The Lab,如图1-25所示;Aldin Dynamics开发的梦幻VR游戏Waltz of the Wizard,如图1-26所示;网易游戏开发的基于Daydream的VR游戏《破晓唤龙者》,如图1-27所示;由Steel Crate Games开发的Keep Talking and Nobody Explodes,如图1-28所示。

Unity基础知识到这里介绍完毕,接下来将详细介绍Unity集成开发环境的搭建,这是进行Unity开发的第一步。通过讲解Unity集成开发环境的安装和如何将目标平台的SDK集成到Unity,读者可以顺利地进入Unity集成开发环境。

▲图1-25 The Lab

▲图1-26 Waltz of the Wizard

▲图1-27 《破晓唤龙者》

▲图1-28 Keep Talking and Nobody Explodes

本节将介绍Unity集成开发环境的搭建。集成开发环境的搭建分为两个步骤:Unity集成开发环境的安装和目标平台的SDK与Unity集成,其中包括在Windows平台下安装Android SDK和在Mac OS平台下安装SDK。

本小节主要讲述如何在Windows平台下搭建Unity集成开发环境,主要包括如何从Unity官网下载Windows平台下使用的Unity游戏开发引擎,以及如何安装下载好的Unity安装程序,具体的操作步骤如下。

(1)登录Unity官方网站,将首页拖至最底部,如图1-29所示。在“下载”栏中单击Unity超链接,网页跳转到新版Unity的版本比较页面,该页面展示了专业版和个人版的功能区别,再将网页拖至底部,在“资源”栏中单击“Unity旧版本”超链接,如图1-30所示。

▲图1-29 Unity官方网站

▲图1-30 新版Unity的版本比较页面

 提示 

由于Unity官网的默认语言为英语,因此打开页面后内容全部为英文,语言选项在网页最底部的右下角处,读者可根据个人需要选择合适的语言。

(2)单击“Unity旧版本”超链接后,网页跳转到Unity下载存档页面,在该页面可以下载最新和以前版本的Unity。这里选择Unity 2017.2.0,如图1-31所示。单击右侧的“下载(Win)”按钮,弹出下拉菜单,如图1-32所示。下拉菜单的前两项分别为“Unity安装程序”和“Unity编辑器(64位)”。读者可根据个人情况选择下载,这里选择第一项。

▲图1-31 Unity下载存档页面

▲图1-32 Unity下载选项

(3)双击下载好的Unity安装程序UnityDownloadAssistant-2017.2.0f3.exe,会打开Unity 2017.2.0f3 Download Assistant窗口,如图1-33所示。单击Next按钮,打开License Agreement窗口,如图1-34所示。

▲图1-33 Unity 2017.2.0f3 Download Assistant窗口

▲图1-34 License Agreement窗口

(4)在License Agreement窗口中选中I accept the terms of the License Agreement复选框,单击Next按钮,打开Choose Components窗口,如图1-35所示。单击Next按钮,打开Choose Download and Install Locations窗口,如图1-36所示。

▲图1-35 Choose Components窗口

▲图1-36 Choose Download and Install Locations窗口

(5)选择好安装路径(本书以默认路径为例),单击Next按钮进行安装,同时打开Downloading and Installing窗口(见图1-37),该窗口打开后(这是Unity的安装过程)会需要一定的时间,请耐心等待。

▲图1-37 Downloading and Installing窗口

(6)安装结束,会跳转到Completing the Unity Setup窗口,如图1-38所示单击Finish按钮即可。如果选中Launch Unity复选框,则单击Finish按钮就会跳转到License注册窗口,此时桌面上会出现一个Unity.exe快捷方式,如图1-39所示。

▲图1-38 Completing the Unity Setup窗口

▲图1-39 Unity.exe快捷方式

(7)如果没有选中Launch Unity复选框,则双击桌面上的Unity.exe快捷方式,也会跳转到License注册窗口,如图1-40所示。这里提示当前没有登录,操作权限会受到限制,单击右上角的Sign in按钮,进入登录界面。

▲图1-40 注册窗口

(8)登录界面如图1-41所示,提示用户输入用户名与密码。如果没有Unity账户,可单击create one超链接创建账户,在此输入笔者的账号后,单击Sign in按钮登录。登录后才能正确地进入License注册窗口,Unity Plus or Pro为专业版,Unity Personal为个人版,如图1-42所示。

▲图1-41 登录界面

▲图1-42 License注册窗口

 提示 

选择使用专业版需要序列号,有序列号的用户可以选择该项后输入序列号,没有序列号的用户可以到官方购买。选择使用个人版的用户,需要在官方网站注册一个账号,通过账号激活Unity。个人版有诸多限制,许多功能都不能在该版本中使用,不建议选择该版本。

(9)选中Unity Personal单选按钮,单击Next按钮,打开License agreement窗口,如图1-43所示,在此窗口中需要选择使用Unity的用途,前两项为公司开发所用,此处选择第3项I don’t use Unity in a professional capacity,单击Next按钮,打开Thank you窗口,如图1-44所示。

▲图1-43 License agreement窗口

▲图1-44 Thank you窗口

(10)单击Start Using Unity按钮,打开Unity启动窗口,如图1-45所示。OnDisk选项卡中为本地的Unity项目,选择相应的项目就能打开项目;In The Cloud选项卡为云端的项目。Learn选项卡下包含Unity的相关资料,如图1-46所示。

▲图1-45 Unity启动窗口

▲图1-46 学习资料

(11)单击New按钮,打开创建项目窗口,如图1-47所示。这里的工程路径选择默认路径,然后单击Create project按钮进入Unity集成开发环境,如图1-48所示。

▲图1-47 创建项目窗口

▲图1-48 Unity集成开发环境

 提示 

Unity的安装要求操作系统为Windows XP SP2以上、Windows 7 SP1以上、Windows 8、Windows 10,不支持Windows Vista;GPU要求有DX9(着色器模型2.0)功能的显卡,2004年以后的产品都可以。对于整体要求,现在所使用的计算机都满足以上两点。

1.2.1节介绍了如何在Windows平台下搭建Unity集成开发环境,本节将具体介绍如何在Mac OS平台下下载Mac版的Unity游戏开发引擎,以及如何安装下载好的Mac版Unity安装程序,具体操作步骤如下。

(1)Mac平台下Unity的下载与Windows相同,故省略前面的安装程序下载步骤,直接从安装开始介绍。首先单击下载好的Unity安装文件UnityDownloadAssistant-2017.2.0f3.dmg,打开Unity安装窗口,如图1-49所示。单击Continue按钮,打开Software License Agreement窗口,如图1-50所示。

▲图1-49 Unity安装窗口

▲图1-50 Software License Agreement窗口

(2)阅读完Unity的安装许可协议后,单击Continue按钮,打开Unity component Selection窗口,选择要安装的组件,如图1-51所示。单击Continue按钮,打开Select a Destination窗口(见图1-52),选择要安装Unity的磁盘,单击Continue按钮,打开Downloading Unity Components窗口。

▲图1-51 Unity component selection窗口

▲图1-52 Select a Destination窗口

(3)Downloading Unity components窗口显示了组件的大小及当前下载进度,在此期间用户无须进行其他操作,只需要耐心等待即可,如图1-53所示。当下载与安装工作完成后,打开The installation was completed successfully窗口,如图1-54所示。

▲图1-53 Downloading Unity components窗口  

▲图1-54 The installation was completed successfully窗口

(4)完成安装后,在已安装的应用中找到Unity图标,单击打开程序。首次打开Unity需要进行激活,具体激活方式与Windows相同,由于篇幅限制,这里不再赘述具体过程,读者可参考1.2.1节的介绍。激活与登录成功窗口如图1-55和图1-56所示。

▲图1-55 激活窗口

▲图1-56 登录成功窗口

(5)完成激活后,单击Start Using Unity按钮,打开选择项目窗口,单击New按钮,打开创建项目窗口。新建项目时,重命名项目名称,这里的工程路径选择默认路径,然后单击Create project按钮进入Unity集成开发环境,如图1-57和图1-58所示。

▲图1-57 创建项目窗口

▲图1-58 Unity集成开发环境

前面已经对Unity游戏引擎进行了简单的介绍,通过其可发布游戏至Windows、Mac、Wii、iPhone和Android等平台。因此对不同的目标平台而言,需要下载安装目标平台的SDK,并将目标平台的SDK集成到Unity中。本小节将详细介绍Android和iPhone的SOK下载安装与集成,具体内容如下。

1.Android的SDK下载安装与集成

前面已经对Unity游戏引擎的下载安装进行了详细的介绍,本部分介绍Android的SDK下载安装与集成,具体操作步骤如下。

 说明 

由于Android是基于Java的,因此要先安装JDK。

(1)登录ORACLE官方网站下载最新的JDK。双击下载的JDK安装程序jdk-9.0.1_windows- x64_bin.exe,根据提示将JDK安装到默认目录下。

(2)右击“我的电脑”,在弹出的快捷菜单中选择“属性”,打开“系统”窗口,单击“高级系统设置”超链接,弹出“系统属性”对话框,选择“高级”选项卡,单击“环境变量”按钮,在弹出的“系统变量”对话框中新建一个名为JAVA_HOME的变量,设置该变量的值为C:\Program Files\Java\jdk-9.0.1,如图1-59所示。再打开Path环境变量,在最后加上“C:\Program Files\Java\jdk-9.0.1\bin;”,单击“确定”按钮即可。

(3)到Android官方网站下载Android的SDK,本书使用的版本是7.0,其他版本的安装与配置方法基本相同。将下载好的SDK压缩包解压到任意盘的根目录下,如可将SDK放在D盘Android目录下,如图1-60所示。

▲图1-59 JDK环境变量配置

▲图1-60 SDK的安装目录

(4)右击“我的电脑”,在弹出的快捷菜单中选择“属性”打开“系统”窗口,单击“高级系统设置”超链接,弹出“系统属性”对话框,选择“高级”选项卡,单击“环境变量”按钮,打开Path系统环境变量,在最后加上SDK解压目录中的tools目录D:\Android\sdk\tools;,单击“确定”按钮完成配置,如图1-61所示。

▲图1-61 SDK环境变量配置

(5)进入Unity集成开发环境,选择Edit→Preferences,如图1-62所示,弹出Unity Preferences对话框,如图1-63所示,选择External Tools选项卡,选择正确的Android SDK路径。

▲图1-62 选择Preferences

▲图1-63 Unity Preferences对话框

2.iPhone的SDK下载安装与集成

由于Unity是跨平台的,因此对于Unity而言,在iPhone平台下同样正常运行。iPhone的SDK下载安装与集成与Android的SDK下载安装与集成大体相同。

(1)登录Apple Developer网站,如图1-64所示。

▲图1-64 登录Apple Develper网站

(2)如果已经有Apple ID了,则只需输入账号和密码,单击Sign In按钮登录,如图1-65所示。

▲图1-65 登录界面

(3)若没有Apple ID,则需先创建一个,创建账号是免费的。在注册信息界面,所有必须填写的信息都要填写正确,填写时最好用英文,如图1-66所示。

(4)注册结束,并成功登录,下载iPhone SDK,如图1-67所示。整个发布包大约2GB,因此,最好通过高速Internet连接来下载,这样可以提高下载速度。SDK是以磁盘镜像文件的形式提供的,默认保存在Downloads文件夹下。

(5)单击此磁盘镜像文件即可进行加载。加载后会看到一个名为iPhone SDK的卷,打开该卷会出现一个显示该卷内容的窗口。在此窗口中,能看到一个名为iPhone SDK的包。双击此包即可根据提示内容进行安装。

▲图1-66 注册信息界面

▲图1-67 注册结束并下载iPhone SDK

 提示 

确保选择了iPhone SDK这一项,然后单击Continue按钮。安装程序会将Xcode和iPhone SDK安装到桌面计算机的/Developer目录下。

本节将详细地介绍如何在Unity集成开发环境中创建第一个Unity案例,将其运行并体验实际效果。此案例的主要内容为:制作一个具有弹性的球体,并使其能够在篮球场上弹跳。其具体操作步骤如下。

(1)启动Unity 2017.2,如图1-68所示。单击New按钮,创建一个新工程,将其重命名为BallSample,选中3D单选按钮,即建立的工程是3D的,如图1-69所示。单击Creat project按钮,完成创建并进入Unity集成开发环境。

▲图1-68 启动Unity 2017.2

▲图1-69 新建工程窗口

(2)进入Unity集成开发环境后,选择GameObject→3D Object→Cube,创建一个Cube(立方体),如图1-70所示。

▲图1-70 创建一个Cube(立方体)

(3)在Unity集成开发环境中的Hierarchy面板中双击刚刚创建的Cube对象,在Sence面板的中心就会出现该Cube对象,如图1-71所示。

▲图1-71 Sence视口中的Cube

(4)Inspector面板中为Cube对象的所有属性。调整其位置参数、旋转参数和缩放参数,如图1-72所示。

▲图1-72 设置Cube属性

(5)在Unity集成开发环境中,选择Assets→Import New Asset(见图1-73),弹出Import New Asset对话框,导入所需要使用的资源文件。在这个案例中,所需要导入的资源是纹理图片,如图1-74所示,选中后,单击Import按钮完成导入。

▲图1-73 选择Import New Asset

▲图1-74 选择所需要的资源

 提示 

为了方便快速地导入这些比较小的资源文件,可以通过直接将其拖曳进Unity集成开发环境中来实现。

(6)为创建的Cube对象添加合适的纹理贴图,就需要创建一个材质对象。选择Assets→Create→Material,此时资源列表中会生成一个New Material.mat文件,如图1-75所示。将其重命名为plane.mat,在其属性栏中单击Albedo前的“⊙”按钮,弹出Select Texture对话框,选择合适的纹理贴图,如图1-76所示,之后关闭对话框。

▲图1-75 New Material文件

▲图1-76 选择贴图

 提示 

给对象添加纹理最快捷的方法是直接将合适的纹理图片拖曳到Sence面板或Hierarchy面板中对应的对象上,此时资源列表中会自动生成一个名为Materials的文件夹,里面包含了刚刚生成的plane.mat文件。

(7)创建一个Sphere(球体)对象。选择GameObject→3D Object→Sphere,为其添加纹理basketball.mat,效果如图1-77所示。设置其Transform组件中的参数,如图1-78所示。

▲图1-77 添加球体的效果

▲图1-78 设置Transform参数

(8)为场景添加一个光源,这里创建的为平行光光源。选择GameObject→Light→Directional Light,光源在Scene面板中的效果如图1-79所示。在Inspector面板中设置其位置、姿态、光照颜色、光照强度、阴影类型等参数,缩放比例,如图1-80所示。

▲图1-79 添加光源的效果

▲图1-80 设置光源参数

(9)在Unity集成开发环境中的Hierarchy面板中选择Main Camera(主摄像机),在Inspector面板中设置主摄像机的参数,包括位置、姿态、大小、背景颜色、投影方式、视角大小等,如图1-81所示。

▲图1-81 设置Main Camera参数

 提示 

每一个新创建的场景中都会自带一个主摄像机及一个平行光光源,用户可以直接使用。

(10)为Sphere对象添加Rigidbody(刚体)组件。在Hierarchy面板中选择Sphere,单击右侧属性框底部的Add Component按钮,如图1-82所示。依次单击Physics→Rigidbody,并设置其参数,如图1-83所示。

▲图1-82 添加组件操作

▲图1-83 设置Rigidbody参数

(11)如果想要球体具有弹性,需要为球体对象添加物理材质。选择Assets→Create→Physic Material,如图1-84所示,为其设置合适的Bounciness参数,如图1-85所示。除此之外,也要用相同的方法为地面添加物理材质。

▲图1-84 选择Physic Material

▲图1-85 设置Bounciness参数

(12)一切准备完成后,即可单击“运行”按钮,所制作的Unity程序的运行效果就会在Game面板里展现出来,如图1-86所示。

▲图1-86 程序的运行及效果

本节将以随书资源中1.3节制作的案例为例,详细介绍如何导入运行已完成的项目。读者可参照以下操作步骤将随书资源中的各个项目案例导入自己计算机上的Unity中进行效果预览和其他操作。

(1)启动Unity,选择File→Open Project,打开一个项目,如图1-87所示。进入Project Wizard(项目向导)界面,单击Open按钮,如图1-88所示。

▲图1-87 选择Open Project

▲图1-88 Project Wizard界面

(2)弹出Open existing Project对话框,找到项目文件夹存放的路径,选择要导入的项目文件夹。这里以1.3节制作的案例为例,选择BallSample文件夹,单击“选择文件夹”按钮,如图1-89所示。

 提示 

读者在进行该步之前,必须把随书资源中对应的案例项目文件夹复制到计算机的某个路径下(路径不能出现中文)。

▲图1-89 选择项目文件夹

(3)此时Unity会重新启动,在Project面板中的Assets/Scene文件夹下找到sence1.unity文件,双击该文件即可在Scene面板中看到图1-90所示的效果。读者还可以自己运行导入的案例。

▲图1-90 项目预览界面

(4)将项目导入Android手机。选择File→Build Settings,如图1-91所示。进入Build Settings(项目导出)界面,如图1-92所示。单击Add Open Scenes按钮,添加游戏需要的场景,在Platform中选择Android。

▲图1-91 选择Build Settings

▲图1-92 Build Settings界面

(5)单击Build And Run按钮,弹出Build Android对话框,如图1-93所示。选择合适路径用于存放生成的游戏APK包,在“文件名”文本框中输入生成APK包的名字,单击“保存”按钮,开始将游戏导入手机,此时会弹出导入进度条,如图1-94所示。

▲图1-93 Build Android对话框

▲图1-94 导入进度条

(6)进入Building Player界面后需要一定的时间,请耐心等待。生成过程结束后手机就会自动进入游戏界面,并且会在手机上显示一个游戏图标,如图1-95和图1-96所示。在原来选择的路径下出现此游戏的APK包,如图1-97所示。

▲图1-95 项目运行界面

▲图1-96 导入手机的游戏图标

▲图1-97 生成的APK包

(7)如果仅单击Build按钮,只会生成APK包但不会将游戏自动导入手机,所以使用这种方法生成游戏APK包不用连接手机。

(8)导出iOS项目。进入Build Settings界面,在Platform中选择iOS,如图1-98所示。单击Player Setting按钮,进入Player Setting界面,设置SDK Version参数为Simulator SDK,以便导出项目能在iOS虚拟机上运行,如图1-99所示。

▲图1-98 Build Settings界面

▲图1-99 Player Setting界面

(9)单击Build And Run按钮,弹出Build iOS对话框,如图1-100所示。选择合适路径用于存放生成的iOS项目文件夹,在文件名处输入生成项目文件夹的名字,单击Save按钮,开始生成iOS项目,此时弹出导入进度条,如图1-101所示。

▲图1-100 Build iOS对话框

▲图1-101 导入进度条

(10)进入Building Player界面后会需要一定的时间,请耐心等待。生成过程结束后会自动打开Xcode并将生成的iOS项目导入Xcode中,这时Xcode会自动打开iOS虚拟机并将刚生成的项目导入到虚拟机中自动运行。项目在iOS虚拟机中的运行界面如图1-102所示。

▲图1-102 项目在iOS虚拟机中的运行界面

 提示 

由于iPhone平台是非开放平台,需要许可证才能将项目导入真机中运行,因此本部分只介绍了导入虚拟机的过程。如果拥有许可证,将项目导入真机的过程和导入虚拟机的过程基本相同。

本章首先介绍了Unity的发展历史及其独具特色的特点,主要内容包括Unity简介、Unity的发展和Unity 3D的特点等,相信读者对Unity已经有了初步的了解。对于Unity的发展历史,读者只须大致了解,无须深究。其次,本章通过讲解Unity集成开发环境的安装和将目标平台的SDK集成到Unity,读者可以顺利地进入Unity集成开发环境。再次,通过讲解案例的导入及运行,读者可以方便地将随书资源中的各个项目案例导入自己计算机上的Unity中进行效果预览和其他操作。


Unity是一个强大的集成游戏引擎和编辑器,它可以让开发人员迅速、高效地创建对象,导入外部资源,并且通过代码把对象连接在一起。Unity编辑器是可视化的,它围绕这样的原则构建,即开发人员可以使用一个简单的拖放动作来完成任何任务,甚至可以连接脚本,自己编写程序实现特定的功能。

本章将对Unity集成开发环境进行系统化的详细介绍。本章分别对Unity集成开发环境的整体布局、菜单栏、工具栏、面板,以及菜单栏中的每个菜单做详细的介绍和说明。通过学习本章,读者可以系统化地理解和使用Unity集成开发环境。

本节将对Unity集成开发环境的整体布局做详细的介绍与说明,主要包括菜单栏、工具栏、场景设计面板、游戏预览面板、属性查看器等。通过介绍,读者可以理解各个布局的作用与用途,对Unity集成开发环境有一个整体化的了解。

Unity集成开发环境的默认布局被分割为一系列不同的面板和带有标签的窗口。每个窗口都显示了编辑器某一方面的细节,并允许开发人员在开发游戏时使用不同的功能。如果读者使用过三维建模程序或其他的游戏编辑器,会发现它们有些相似之处。

双击Unity的快捷方式,进入Unity集成开发环境,其中包括标题栏、菜单栏、工具栏、Scene(场景设计)面板、Game(游戏预览)面板、Hierarchy面板、Project面板、Inspector面板(属性查看器)等,如图2-1所示。

▲图2-1 Unity集成开发环境的整体布局

 说明 

读者可以根据自己的爱好和实际需要来创建自己的布局。在面板或者窗口的标签处按住鼠标左键,把面板或者窗口拖曳到适当的位置后松开即可。布局完成后可以选择Window→Layouts→Save Layout保存自己的布局。如果布局被不小心弄乱了,可以通过选择Window→Layouts找到自己保存的布局来恢复。

所有带标签的窗口都带有一个名为Windows Options(窗口选项)的下拉列表,可以用来最大化所选中的视图窗口,也可以关闭当前显示的标签视图,还可以在这个窗口中添加另一个带标签的视图。单击该图标将会弹出可用的选项,如图2-2所示。

▲图2-2 Windows Options的下拉列表

初始的Unity菜单栏中包括File(文件)、Edit(编辑)、Assets(资源)、GameObject(游戏对象)、Component(组件)、Window(窗口)和Help(帮助)7个菜单,如图2-3所示。每个菜单下都有子菜单,开发人员可以根据需要选择不同的菜单来实现所需要的功能,也可以根据实际需求来添加自定义菜单。

▲图2-3 菜单栏

 提示 

现在读者只需要了解每个菜单所包含的常见功能,稍后用到时,本书将会对各个功能给出更为详细的介绍。

工具栏位于菜单栏的下方,主要有Transform(变换)工具、Transform Gizmo(变换Gizmo)切换、Play(播放)控件、Cloud(云)按钮、Account(账户)下拉列表、Layers(分层)下拉列表和Layout(布局)下拉列表,这些工具用于控制场景设计面板和游戏预览面板中的显示方式,以及变换场景中游戏对象的位置和方向等,如图2-4所示。

▲图2-4 工具栏

 提示 

控制工具也是按照功能分类的,它们主要用来辅助开发人员在场景设计面板和游戏预览面板中进行编辑和移动,在后面的章节将进行更为详细的介绍。

场景设计面板是编辑器中非常重要的面板之一,它是游戏世界或是关卡的一个可视化表示,如图2-5所示。在场景设计面板中可以对游戏组成对象列表中的所有物体进行移动、操纵和放置,创建供玩家进行探险和交互的物理空间。

▲图2-5 场景设计面板

正如读者所看到的,在游戏组成对象列表中列出的对象都会在场景设计面板中显示出来。读者可以在游戏组成对象列表中单击对象的名字来选中游戏对象,或是在场景设计面板中手动单击它,可以在场景设计面板或是游戏组成对象列表中单击不同的对象,或是在属性查看器中显示该对象所对应的数据。

 说明 

如果读者在游戏组成对象列表中可以看到对象列表,但是场景设计面板中却没有,可能是读者的场景设计面板缩得太小,以至于无法看到各个资源。要修正这个问题,可以在游戏组成对象列表中选中某个对象,移动鼠标指针并让它悬停在场景设计面板上,随后按F键来放大显示。

1.摄像机导航

学会怎样在场景设计面板中迅速移动,是使用编辑器所需要掌握的重要知识之一(如果读者会使用Autodesk 3ds Max,就可能会熟悉这些控制方法)。

可以把场景设计面板想象成一个虚拟摄像机的输出或焦点。为了在场景中进行移动,读者需要移动摄像机的视野,就好像在看着不同的对象。

场景设计面板还包含了一个名为Persp的特殊工具,如图2-6所示。这一特殊工具可以使读者迅速地切换观察场景的角度。

▲图2-6 Persp工具

单击Persp工具上的每个箭头都会改变观察场景的角度,使其沿着一个不同的正交或是二维方向变换,如上、后、前、右,如图2-7所示。单击Persp工具中的居中立方体图标,可以把场景设计面板恢复到默认的透视(Perspective)视图。

▲图2-7 各个主要方向的视图

 提示 

如果读者更习惯使用与默认颜色不同的颜色来表示游戏世界的坐标轴,可以依次选择Edit→Preference→Colors,然后修改为喜欢的任何颜色。另外,读者可以单击Persp工具右上方的锁来锁定视角,这时只能进行平移操作,无法转动视角。

2.高级视图操作

场景设计面板的控制栏可以改变摄像机查看场景的方式,如图2-8所示。其默认设置可以使读者对于场景在游戏中渲染后的样子有一个很好的认识,它还会显示一个网格以帮助读者定位和移动对象。通过改变这些设置,读者可以以多种模式查看场景。

▲图2-8 场景设计面板的控制栏

 提示 

这些选择中的任何一个都不会改变游戏的显示方式,它只会改变读者在场景设计面板中查看这些对象的方式。

3.操作对象

除了把摄像机视角四处移动以外,我们还需要在场景中重新定位和移动对象。这些操作称为对象变换(Object Transform),它们可以处理任意选中对象的位置、旋转和大小(相对尺寸)。对象变换方式有以下两种:在属性查看器中为这些变换输入新的值及通过变换工具手动地移动和操作这些对象。

▲图2-9 属性查看器

 提示 

也可以通过Transform工具对游戏对象进行变换。读者可以手动地在工具栏中选择一个工具,也可以使用2.2节介绍的热键在工具之间快速切换(强烈推荐)。

▲图2-10 移动游戏对象

 提示 

属性查看器中的值会根据读者的修改而进行更新,并会实时地在Scene面板中显示修改后的效果。

▲图2-11 旋转游戏对象

 注意 

这些环的颜色指明了这个对象会按照哪条轴来旋转。例如,如果拖动蓝色手柄,这个球体就会沿着z轴旋转。这一工具还有一个简单的黄色环围绕在另外3个环的外侧,单击并拖动该黄色环,可以让对象按照3条坐标轴进行旋转。

▲图2-12 缩放游戏对象

默认的布局中,游戏预览面板位于Scene标签的旁边上。在这里,游戏会按照就像是最后创建并发布时一样进行渲染。读者可以在任何时候使用该面板在编辑器内测试或试玩游戏,而不需要停下来构建任何东西,如图2-13所示。

▲图2-13 游戏预览面板

 提示 

虽然现在这好像不是很重要,但是当读者开始要调整或是平衡成千上万个小细节时,能够自由地在编辑器和游戏中随时切换就非常重要了。

要测试游戏,可以单击工具栏上的Play控件中的各个按钮来实现相关的操作,如图2-14所示。

▲图2-14 Play控件

游戏预览面板和场景设计面板一样,也有控制栏。控制栏上有一些功能按钮,主要包括Aspect下拉列表、Scale拖动条、Maximize On Play按钮、Stats按钮及Gizmos按钮,如图2-15所示。

▲图2-15 游戏预览面板的控制栏

Aspect下拉列表可以实时改变游戏预览面板的显示比例,即使游戏正在运行。其中Free Aspect选项允许游戏预览面板填满当前窗口所有可用的空间,而其他选项会模拟最常见的显示器的分辨率和比例。当需要为不同大小的屏幕制作GUI时,这会非常方便。

单击Maximize On Play按钮,可以在游戏运行时把游戏预览面板扩大到编辑器视图的整个区域。单击Gizmos按钮,可以切换游戏中绘制和渲染的所有工具。单击Stats按钮,可以显示Statistics页面,该页面用于显示游戏绘制的数据,如图2-16所示。

▲图2-16 Statistics页面

Statistics页面中部分数据含义如下。

游戏组成对象列表列出了游戏场景中所有的游戏对象。场景中的这些对象是简单地按照生成顺序排列的。随着开发人员在游戏中添加或者删除对象,游戏组成对象列表会根据每次修改而进行更新。图2-17显示了当前场景设计面板中的内容。

▲图2-17 游戏组成对象列表

在游戏组成对象列表中选择一个对象并按Delete键(或是右击,在弹出的快捷菜单中选择Delete),可以从游戏的当前场景中删除该对象。一个资源的每个实例都会独立地列出来,这时良好的命名规范变得尤为重要。命名规范就是要达到见名知意的目的。

在游戏组成对象列表中可以为对象建立父子关系,这样进行组织可使对游戏的编辑修改更为简单。为对象建立父子关系,基本上就是将一组相似的对象收集到一起并进行分组,使它们位于一个单一的对象(父对象)之下。在该父对象下的所有其他对象都称为子对象,如图2-18所示。

▲图2-18 游戏组成对象列表中的父子关系

 说明 

在图2-18中,名为GameObject的游戏对象就是父对象,其下有3个子对象,分别为Cube、Sphere和Capsule。单击GameObject左侧的箭头可以展开或收起这一分组,与Project视图中的文件夹一样。

建立父子关系除了会提供一种快捷的方式把有相似功能的对象组织在一起以外,还带来了另一个重要的好处,即对父对象进行移动或操作时,也会依次地对其下所有的子对象进行同样的操作,也就是说,子对象继承了父对象的基本变换数据。

如果读者仍然无法确切地理解父子关系,可以想象一下一个普通人的身体。手臂以身体作为父对象,手以手臂的末端作为父对象。向前移动身体(父对象)也会让手臂随着它移动,这也会依次移动手(手臂和手是两个子对象)。然而,可以对手进行移动和旋转而不需要移动身体和手臂。

 提示 

为对象建立父子关系,可以使大量对象的移动变得更为方便和精确,因此,读者应该尽可能地使用这种方法。后续章节将会介绍建立父子关系的一些更为高级的概念。

项目资源列表中列出了项目中的所有文件,包括脚本、贴图、模型、场景等文件,并且这些文件都组织到一个Assets(资源)文件夹中。Assets文件夹中包含开发人员创建或导入的所有文件资源,如图2-19所示。

▲图2-19 Assets文件夹内容

项目资源列表显示了这个项目所包含的全部资源,并且这些资源在项目中的组织方式与计算机资源管理器中的组织方式完全一致。文件夹左侧的箭头表示这是一个嵌套层,单击该箭头就会展开该文件夹里的内容。在项目资源列表中简单地拖曳就可以在不同文件夹中移动和组织文件。

 提示 

在Unity编辑器外部移动资源文件时要非常小心,实际上,应该不惜一切代价避免这样做。如果需要重新组织或移动某个资源,则应该在项目资源列表内部进行,否则可能会损坏或删除和该资源相关联的源数据和链接,甚至可能在此过程中损坏项目。

可以在项目资源列表中直接打开文件并进行编辑。如果发现需要对任一文件的内容(如脚本文件)进行调整或修改,只须双击该文件就可以在默认编辑器中打开它。正常地保存这个文件,Unity编辑器就会自动把该文件更新到项目中。

如果项目中包含了成千上万个文件,读者可能会发现通过眼睛去寻找某个文件非常不方便,甚至是完全不可能的。项目资源列表提供了搜索栏,在搜索栏中输入文件名的任何部分,便可以在项目各个层次的子目录中进行查找。

 说明 

要重命名一个文件或者文件夹,可以缓慢地单击该文件两次,或是选择想要重命名的文件后按F2键。当完成重命名后,可以按Enter键确认修改。

在项目资源列表中右击,就会弹出一个高级选项菜单,该菜单包含将导入资源和外部项目控制器同步的功能选项,以及对资源进行种种操作的功能选项,如图2-20所示。后续章节会详细介绍这些内容。

▲图2-20 高级选项菜单

属性查看器显示了游戏中每个游戏对象所包含的所有组件的详细属性。单击Plane对象,其所有组件的详细属性就会显示在属性查看器中,如图2-21所示。这些组件都按照添加的先后顺序进行排列,读者可以根据需要手动地改变它们的位置。

▲图2-21 属性查看器

属性查看器中一般包含很多属性信息,这些属性初看让人无所适从,但是每个对象对应的所有属性查看器都遵循一些基本原则。在属性查看器的顶端是这个对象的名称,然后是该对象的各个方面的一个列表,如Transform(变换)组件和Mesh Collider(网格碰撞体)组件。

 提示 

后续章节会对这些不同种类的属性进行更为详细的介绍,但是到目前为止,读者只需要知道在这里可以任意修改对象所拥有的属性信息即可。

属性查看器中的每个属性都有与其对应的“帮助”按钮和上下文菜单。单击“帮助”按钮会显示参考手册中与该属性相关的帮助文档,读者可以挑选这些属性中的任意一个进行尝试。单击上下文菜单会显示仅与该属性相关的选项,也可以在此把该属性重置为其他默认值。

状态栏和控制台是Unity集成开发环境中两个很有用的调试工具,如图2-22所示。状态栏总是出现在编辑器的底部。可以通过选择Window→Console或按Ctrl+Shift+C快捷键打开控制台,也可以单击状态栏打开控制台。

▲图2-22 状态栏与控制台

当单击Play按钮开始测试项目或是导出运行项目时,在状态栏和控制台中都会显示出相关的提示信息,也可以在脚本中让项目向控制台和状态栏输出一些信息,这有助于调试和修复错误。项目遇到的任何错误、消息或者警告,以及和这个特定错误相关的任何细节都会显示在这里。

读者可以在动画视图中查看并调整动画曲线。该视图在默认情况下并不打开,可以通过选择Window→Animation或是按Ctrl+6快捷键来打开,如图2-23所示。动画视图会作为一个单独的浮动窗口弹出,读者可以四处移动它或是改变其大小。

▲图2-23 动画视图

 提示 

在稍后的章节中,读者会看到如何使用动画视图来查看动画剪辑或是在3D动画应用程序之外更新数据。

动画控制器编辑视图用于编辑动画控制器。该视图在默认情况下也并不打开,可以通过选择Window→Animator或是在项目资源列表中双击动画控制器文件来打开,如图2-24所示。在动画控制器编辑视图中可以添加、删除动画。

▲图2-24 动画控制器编辑视图

本节将对菜单栏中的各个菜单及其下属的子菜单进行详细讲解。通过对菜单栏的学习,读者可以对Unity各项功能有一个系统、全面的认识与了解,在今后的开发中能够熟练地运用各个菜单,以满足开发的需求。

本小节将对菜单栏中的File(文件)菜单进行详细讲解,并对其下的每一个子菜单都进行细致的介绍。通过本小节的学习,读者能够清楚地理解File菜单的功能和作用,以及其下各个菜单的功能与用途,在开发过程中进行熟练的操作。

在Unity集成开发环境中,单击File菜单,会弹出一个下拉菜单,每个子菜单及其对应的快捷键如图2-25所示。

▲图2-25 File子菜单

New Scene功能为新建场景,即新建一个游戏场景,每一个新创建的游戏场景包含一个Main Camera(主摄像机)和一个Directional Light(平行光光源),可以根据需要在场景中添加相应的GameObject(游戏对象),如图2-26所示。

▲图2-26 新建场景

Open Scene菜单功能为打开场景,即打开以前所保存的场景,选择Open Scene,弹出Load Scene对话框,选择所要打开的场景文件(扩展名为“.unity”的文件),单击“打开”按钮即可打开场景文件,如图2-27所示。

▲图2-27 打开场景文件

Save Scenes菜单功能为保存场景,即保存当前所搭建的场景。如果是第一次保存当前场景,选择Save Scenes,弹出Save Scene对话框,在“文件名”文本框中输入文件名称,单击“保存”按钮,就会生成一个场景文件,如图2-28所示。如果之前保存过该场景,选择Save Scenes,之前保存的场景文件就会被当前场景文件覆盖,不会弹出Save Scene对话框。

▲图2-28 保存场景

Save Scene as菜单功能为把当前的场景另存为一个新的场景文件。选择Save Scene as,弹出Save Scene对话框,在“文件名”文本框中输入文件名称,单击“保存”按钮,就会生成一个新的场景文件,如图2-29所示。

▲图2-29 场景另存为

New Project菜单功能为新建项目,即创建一个新的项目。选择New Project,弹出New Project对话框,在Project name文本框中输入项目名称,在Location处选择合适的路径,在Add Asset Packages处选择需要导入的资源包。新建项目默认为3D项目,如果想要创建2D项目,则需要选中2D单选按钮,最后单击Create project按钮,就会自动创建一个项目并打开Unity开发环境,如图2-30所示。

▲图2-30 新建项目

Open Project菜单功能为打开项目,即打开以前所创建的项目。选择Open Project,弹出Recent projects对话框,以前创建的项目都会显示在列表中,如图2-31所示,单击项目名称即可打开项目。如果想要打开列表中没有的项目,则需要单击OPEN按钮,弹出Open existing Project对话框,找到所要打开的项目,单击“选择文件夹”按钮即可打开选定项目,如图2-32所示。

▲图2-31 打开项目

▲图2-32 打开其他项目

Save Project菜单功能为保存项目,选择Save Project,即可保存当前正在进行编辑的项目。

Build Settings菜单功能为发布设置,即在发布游戏前设置一些准备工作。选择Build Settings,弹出Build Settings对话框,如图2-33所示。在Platform中选择该项目发布后所要运行的平台,同时可以单击Player Setting按钮,在Inspector视图中针对要发布的平台做相应的参数设置,如图2-34所示。完成设置后,单击Build按钮,弹出Build Android对话框,在“文件名”文本框中输入文件名,单击“保存”按钮,开始生成安装文件,如图2-35所示。

▲图2-33 发布设置

▲图2-34 玩家设置

▲图2-35 生成安装文件

Build & Run菜单功能为发布并运行,即在编译完游戏后,直接将游戏发布到目标平台上。

Exit菜单功能为退出,即退出Unity程序。

本小节将对菜单栏中的Edit(编辑)菜单进行详细讲解,并对其下的每一个子菜单都进行细致的介绍。通过本小节的学习,读者能够清楚地理解Edit菜单的功能和作用,以及其下各个子菜单的功能与用途,以在开发过程中进行熟练的操作。

在Unity集成开发环境中,单击Edit菜单,会弹出一个下拉菜单,每个子菜单及其对应的快捷键如图2-36所示。

▲图2-36 Edit子菜单

Undo Selection Change菜单功能为撤销,即取消当前的操作。该操作在开发中使用较多,快捷键为Ctrl+Z。

Redo菜单功能为Undo的反向操作,即重新做一遍当前的操作,快捷键为Ctrl+Y。

Cut菜单功能为剪切,其快捷键为Ctrl+X。

Copy菜单功能为复制,其快捷键为Ctrl+C。

Paste菜单功能为粘贴,其快捷键为Ctrl+V。

Duplicate菜单功能为复制并粘贴,其快捷键为Ctrl+D。

Delete菜单功能为删除,其快捷键为Shift+Delete。

Frame Selected菜单功能为居中并最大化显示当前选中的物体,即若要在场景设计面板中近距离观察所选中的GameObject,便可选择Frame Selected,其快捷键为F。Frame Selected可以方便地切换观察视角,极大地方便项目的开发与设计。

Lock View to Selected菜单功能为居中并最大化显示层级视图中选中的物体,即在层级视图(Hierarchy)中选中物体后,选择Lock View to Selected,该物体就会在场景中居中并最大化显示,其快捷键为Shift+F。Lock View to Selected所实现的效果与Frame Selected相同。

Find菜单功能为查找,即查找场景中的对象。

Select All菜单功能为选择全部,快捷键为Ctrl+A。

Preferences菜单功能为偏好设置,即对Unity集成开发环境的相应参数进行设置。选择Preferences,弹出Unity Preferences对话框,里面有8项设置,分别为General、External Tools、Colors、Keys、GI Cache、2D、Cache Server、Diagnostics,具体含义如表2-1所示。

表2-1  Preferences子菜单具体含义

菜单

含义

菜单

含义

General

综合设置

Keys

键值

External Tools

外部工具

GI Cache

实时光照缓存

Colors

颜色

2D

2D设置

Cache Server

缓存服务器

(1)选择General,进入综合设置界面,如图2-37所示,该界面是整体上对Unity集成开发环境进行的一些相关设置,分别是Auto Refresh、Compress Assets on Import、Show Asset Store search hits、Editor Skin、Load Previous Project on Startup、Disable Editor Analytics(Pro Only)、Verify Saving Assets、Enable Alpha Numeric Sorting,具体含义如表2-2所示。

▲图2-37 综合设置界面

表2-2  General子菜单具体含义

菜单

含义

Auto Refresh

自动更新

Compress Assets on Import

导入时压缩资源

Show Asset Store search hits

显示资源商店中资源的数量

Editor Skin

界面

Load Previous Project on Startup

启动时加载以前的项目

Disable Editor Analytics(Pro Only)

自动将分析报告发送给Unity(专业版专有)

Verify Saving Assets

退出时验证所要保存的资源

Enable Alpha Numeric Sorting

允许Hierarchy视图中的对象按字母排序

(2)选择External Tools,进入外部工具设置界面,如图2-38所示。该界面对与Unity相关的一些外部编辑工具进行设置,分别是External Script Editor、Editor Attaching、Revision Control Diff/Merge、Add .unityproj’s to .sln、Image Application、Android,具体含义如表2-3所示。

▲图2-38 外部工具设置界面

表2-3  External Tools子菜单具体含义

菜单

含义

菜单

含义

External Script Editor

外部脚本编辑器

Add .unityproj’s to .sln

添加到sln工程

Editor Attaching

编辑器附加操作

Image Application

打开图像文件的工具

Revision Control Diff/Merge

文件比较/合并工具

Android

各种工具包路径

(3)选择Colors,进入颜色设置界面,如图2-39所示。该界面对各个窗口、工具的背景颜色、显示颜色进行设置。开发人员可根据自己的使用习惯对颜色进行选择设置,对Unity集成开发环境进行装饰。

▲图2-39 颜色设置界面

(4)选择Keys,进入键值设置界面,如图2-40所示。该界面对Unity集成开发环境中需要的键值进行设置,一般情况下使用默认的设置即可,也可根据个人使用习惯进行修改。

▲图2-40 键值设置界面

(5)选择GI Cache,进入实时光照缓存设置界面,如图2-41所示。该界面对Unity实时光照缓存进行设置,分别是Maximum Cache Size (GB)、Cache compression、Cache Size、Custom cache location、Clean Cache、Cache Folder Location,具体含义如表2-4所示。

▲图2-41 实时光照缓存设置界面

表2-4  GI Cache子菜单具体含义

菜单

含义

菜单

含义

Maximum Cache Size (GB)

最大缓存设置

Custom cache location

是否自定义缓存位置

Cache compression

缓存压缩

Clean Cache

清除缓存

Cache Size

当前缓存尺寸

Cache Folder Location

当前缓存位置

(6)选择2D,进入2D设置界面,如图2-42所示,该界面可以通过设置滑动条来设置最大2D精灵缓存文件夹的大小。根据滑动条设置的值,最大2D精灵缓存文件夹的大小将尽可能保持在该值以下。

▲图2-42 2D设置界面

(7)选择Cache Server,进入缓存服务器设置界面,如图2-43所示,该界面对缓存服务器进行设置。当启动缓存服务器(即选中Remote复选框)时,就需要在IP Address(IP地址)文本框中输入正确的IP地址,否则不要启用。

▲图2-43 缓存服务器设置界面

Modules菜单用于模块管理,即模块管理器,该菜单展示了针对各个平台的回放引擎(图2-44)及拓展的性能优化工具。

▲图2-44 回放引擎

Play菜单用于播放/运行,即播放当前场景动画。其快捷键为Ctrl+P,相当于单击工具栏中的播放按钮,如图2-45所示,场景动画效果将在游戏预览面板中显示。

▲图2-45 播放按钮

Pause菜单用于暂停/中断,即暂停当前场景动画。其快捷键为Ctrl+Shift+P,相当于单击工具栏中的暂停按钮,如图2-46所示,场景动画效果将在游戏预览面板中显示。

▲图2-46 暂停按钮

Step菜单用于播放当前场景动画的下一帧。其快捷键为Ctrl+Alt+P,相当于单击工具栏中的下一帧按钮,如图2-47所示,场景动画效果将在游戏预览面板中显示。

▲图2-47 下一帧按钮

Selection菜单用于选择,即选择要载入/存储的游戏对象的编号。选择Selection菜单中的加载选项(图2-48),载入以前保存的游戏对象,选择所要载入的相应游戏对象的编号,即可载入相应的游戏对象;选择Selection菜单中的存储选项(图2-49),即可保存当前场景设计面板中所选中的游戏对象,并赋予相应的编号。

▲图2-48 加载选项

▲图2-49 存储选项

Project Settings菜单用于进行工程设置,即对工程进行相应的设置。选择Project Settings,弹出其子菜单,如图2-50所示,各子菜单具体含义如表2-5所示。

▲图2-50 Project Settings子菜单

表2-5  Project Settings子菜单具体含义

菜单

含义

菜单

含义

Input

输入

Physics 2D

2D物理属性

Tags and Layers

标签和层

Quality

质量

Audio

音频

Graphics

图形

Time

时间

Network

网络

Player

播放

Editor

编辑

Physics

物理属性

Script Execution Order

脚本执行顺序

(1)选择Input,Unity集成开发环境的Inspector视图中就会出现Input选项的具体设置,可以根据需要对其中的参数做具体的调整,如图2-51所示。

▲图2-51 Input选项的具体设置

(2)选择Tags and Layers,Unity集成开发环境的Inspector视图中就会出现Tags&Layers选项的具体设置,可以根据需要对其中的参数做具体的调整,如图2-52所示。

▲图2-52 Tags&Layers选项的具体设置

(3)选择Audio,Unity集成开发环境的Inspector视图中就会出现Audio选项的具体设置,可以根据需要对其中的参数做具体的调整,如图2-53所示。

▲图2-53 Audio选项的具体设置

(4)选择Time,Unity集成开发环境的Inspector视图中就会出现Time选项的具体设置,可以根据需要对其中的参数做具体的调整,如图2-54所示。

▲图2-54 Time选项的具体设置

(5)选择Player,Unity集成开发环境的Inspector视图中就会出现Player选项的具体设置,可以根据需要对其中的参数做具体的调整,如图2-55所示。

▲图2-55 Player选项的具体设置

(6)选择Physics,Unity集成开发环境的Inspector视图中就会出现Physics选项的具体设置,可以根据需要对其中的参数做具体的调整,如图2-56所示。

▲图2-56 Physics选项的具体设置

(7)选择Physics 2D,Unity集成开发环境的Inspector视图中就会出现Physics2D选项的具体设置,可以根据需要对其中的参数做具体的调整,如图2-57所示。

(8)选择Quality,在Unity集成开发环境的Inspector视图中就会出现Quality选项的具体设置,可以根据需要对其中的参数做具体的调整,如图2-58所示。

(9)选择Graphics,在Unity集成开发环境的Inspector视图中就会出现Graphics选项的具体设置,可以根据需要对其中的参数做具体的调整,如图2-59所示。

▲图2-57 Physics 2D选项的具体设置

▲图2-58 Quality选项的具体设置

▲图2-59 Graphics选项的具体设置

(10)选择Network,Unity集成开发环境的Inspector视图中就会出现Network选项的具体设置,可以根据需要对其中的参数做具体的调整,如图2-60所示。

▲图2-60 Network选项的具体设置

(11)选择Editor,Unity集成开发环境的Inspector视图中就会出现Editor选项的具体设置,可以根据需要对其中的参数做具体的调整,如图2-61所示。

▲图2-61 Editor选项的具体设置

(12)选择Script Execution Order,Unity集成开发环境的Inspector视图中就会出现Script Execution Order选项的具体设置,可以根据需要对其中的参数做具体的调整,如图2-62所示。

▲图2-62 Script Execution Order选项的具体设置

Graphics Emulation菜单功能为图形模拟,即选择需要的着色器模型,如图2-63所示。

▲图2-63 图形模拟

Network Emulation菜单功能为网络模拟,即选择适当的网络传输方式,如图2-64所示。

▲图2-64 网络模拟

Snap Settings菜单功能为对齐设置,即适当的对齐方式,可以根据需要修改参数,如图2-65所示。

▲图2-65 对齐设置

本小节将对菜单栏中的Assets(资源)菜单进行详细讲解,并对其下的每一个子菜单都进行细致的介绍。通过本小节的学习,读者能够清楚地理解Assets菜单的功能和作用。

在Unity集成开发环境中,单击Assets菜单,会弹出一个下拉菜单,每个子菜单及其对应的快捷键如图2-66所示。

▲图2-66 Assets子菜单

Create菜单功能为创建Unity内置的资源,其子菜单为Unity内置的各个资源,如图2-67所示。创建的任何资源都会出现在项目资源列表中,根据需要对创建的各个资源进行相应的编辑,进而方便、简单地实现具体的功能。

▲图2-67 Create子菜单

(1)选择Folder,就会在项目资源列表中创建一个项目文件夹,可以根据需要修改文件夹名称。

(2)选择C# Script,就会在项目资源列表中创建一个C#脚本,可以根据需要修改脚本名称,在脚本中用C#编写代码,实现具体的功能。

(3)选择Javascript,就会在项目资源列表中创建一个JavaScript脚本,可以根据需要修改脚本名称,在脚本中用JavaScript编写代码,实现具体的功能。

(4)选择Shader下的子菜单,就会在项目资源列表中创建相应的着色器脚本,在脚本中用ShaderLab语言或者Cg.GLSL语言编写着色器。

(5)选择Testing菜单下的子菜单,就会在项目资源列表中创建相应的集成测试脚本,可以根据需要修改脚本名称,在脚步中实现具体的功能。

(6)选择Scene,就会在项目资源列表中创建一个场景文件,其作用和选择File菜单下的New Scene子菜单功能相同。

(7)选择Prefab,就会在项目资源列表中创建一个预制件,其作用是通过代码批量地创建相同的游戏对象。

(8)选择Audio Mixer,就会创建一个音频混合器,如图2-68所示,可以根据需要混合不同的声音源来达到需要的效果。

▲图2-68 音频混合器

(9)选择Material,就会在项目资源列表中创建一个材质,如图2-69所示,可以根据需要在属性查看器中选择材质的颜色、渲染管线及渲染方式。

▲图2-69 材质

(10)选择Lens Flare,就会在项目资源列表中创建一个光晕资源,如图2-70所示,可以选择适当的光晕2D纹理贴图。

▲图2-70 光晕资源

(11)选择Render Texture,就会创建一个渲染纹理资源,如图2-71所示,可以对创建的渲染纹理资源进行相关的具体设置,开发人员可以根据实际需要进行相应的设置。

▲图2-71 渲染纹理资源

(12)选择Lightmap Parameters,就会创建一个光照贴图参数资源,如图2-72所示。

▲图2-72 光照贴图参数资源

(13)选择Sprites菜单下的子菜单,就会创建不同类型的精灵对象,如图2-73所示,也可以给这些精灵对象赋予合适的贴图。

▲图2-73 不同类型的精灵对象

(14)选择Animator Controller,就会创建一个动画控制器,如图2-74所示。开发人员可以根据实际的开发需求,在项目资源中打开进行设置。

▲图2-74 动画控制器

(15)选择Animation,就会创建一个动画片段资源,如图2-75所示。

▲图2-75 动画片段资源

(16)选择Animator Override Controller,就会创建一个动画重新控制器,如图2-76所示,用来重写给定avatar的控制器的某些动画剪辑。

▲图2-76 动画重新控制器

(17)选择Avatar Mask,就会创建一个身体遮罩资源,如图2-77所示,通过身体遮罩可以对动画中特定的身体部位进行激活或禁止。

▲图2-77 身体遮罩资源

(18)选择Physic Material,就会创建一个物理材质,如图2-78所示。开发人员可以根据实际的开发需求,在属性查看器中设置相应的参数。

▲图2-78 物理材质

(19)选择Physics Material 2D,就会创建一个2D物理材质,如图2-79所示。

▲图2-79 2D物理材质

(20)选择GUI Skin,就会创建一个绘制样式资源,如图2-80所示,该资源可以对2D界面中的图形绘制进行具体的设置。开发人员可以根据实际的开发需求,在属性查看器中对具体的参数进行设置。

▲图2-80 绘制样式资源

(21)选择Custom Font,就会创建一个文本样式资源,如图2-81所示。

▲图2-81 文本样式资源

(22)选择Legacy→Cubemap”,就会创建一个立方体纹理映射资源,如图2-82所示,该资源可以分别对立方体的6个面进行纹理设置。

▲图2-82 立方体纹理映射资源

Show in Explorer菜单功能为在资源管理器中显示资源文件。选择Show in Explorer,当前选中的资源就会在资源管理器中显示出来。资源管理器中将显示此项目的所有资源,如图2-83所示。

▲图2-83 资源管理器

Open菜单功能为打开项目资源列表中的资源文件。选中一个资源,选择Open,或者双击该资源,就会使用默认的编辑器打开这个资源文件,然后可以对该资源文件进行编辑。

Delete菜单功能为删除项目资源列表中的资源文件。选中一个资源文件,选择Delete,或是按Delete键,弹出确认是否删除资源文件对话框,如图2-84所示,单击Delete按钮就会删除该资源文件。

▲图2-84 确认是否删除资源文件对话框

为当前场景添加一个附加场景。此选项允许同时运行多个场景,在选中需要添加的场景后单击此按钮即为当前场景附加了一个场景。

Import New Asset菜单功能为导入工程所需要的资源。选择Import New Asset,弹出Import New Asset对话框,如图2-85所示,选择需要导入的资源文件,单击Import按钮即可成功导入。

▲图2-85 Import New Asset对话框

 提示 

为方便起见,导入较小的资源时没必要进行这些烦琐的操作,直接选中要导入的资源,将其拖曳进Unity集成开发环境的项目资源列表即可成功导入。

Import Package菜单功能为导入工程所需要的Unity资源包。选择Import Package→Custom Package,弹出Import package对话框,如图2-86所示,选择需要导入的资源包,单击“打开”按钮就会弹出导入包的进度框。

▲图2-86 Import package对话框

Export Package菜单功能为导出所需要的资源包。选中需要导出的资源文件,选择Export package,弹出Exporting package对话框,如图2-87所示,单击Export按钮即可导出资源包。

▲图2-87 Exporting package对话框

Find References In Scene菜单功能为在场景中找出使用选中资源的游戏对象。在项目资源列表中选中一个资源,选择Find References In Scene,就会在游戏组成对象列表中显示使用该资源的游戏对象。

Select Dependencies菜单功能为选择游戏对象的依赖资源。在游戏组成对象列表中选择需要找出依赖资源的游戏对象,选择Select Dependencies,就会在项目资源列表中显示出游戏对象的依赖资源。

Refresh菜单功能为刷新项目资源列表。当在Unity编辑器外部改动项目资源后,选择Refresh,可刷新项目资源列表。

Reimport菜单功能为重新导入项目资源。选中需要重新导入的项目资源,选择Reimport,就会将选中的资源重新导入项目。

Reimport All菜单功能为重新导入项目的所有资源。选择Reimport All,就会将项目资源列表中的所有资源重新导入项目。

Run API Updater菜单功能为将脚本中已经过时的API自动更新为最新的API。选中旧版项目中含有的过时API脚本,选择Run API Updater,就会自动更新为最新的API。不是所有过时的API都能自动更新为最新的API,有些需要手动修改代码。

Open C# Preject菜单功能为在脚本编辑工具中打开项目工程。选择Open C# Preject,就会将Unity项目脚本同步到脚本编辑工具项目中并在脚本编辑工具中打开该项目。

本小节将对菜单栏中的GameObject(游戏对象)菜单进行详细讲解,并对其下的每一个子菜单都进行细致的介绍。通过本小节的学习,读者能够清楚地理解GameObject菜单的功能。

单击GameObject菜单,会弹出一个下拉菜单,每个子菜单及其对应的快捷键如图2-88所示。

▲图2-88 GameObject子菜单

Create Empty菜单功能为创建空游戏对象,空游戏对象就是不带有任何组件的游戏对象。当其他游戏对象进行分组时,空游戏对象作为其父对象。选择Create Empty或按Ctrl+Shift+N快捷键就会在场景中创建一个空游戏对象。

Create Empty Child菜单功能为创建子游戏对象。选中一个游戏对象,选择Create Empty Child或按Alt+Shift+N快捷键,就会为选中的游戏对象创建一个子游戏对象。

3D Object菜单功能为创建3D游戏对象,其子菜单分别为Cube、Sphere、Capsule、Cylinder、Plane、Quad、Ragdoll、Terrain、Tree、Wind Zone和3D Text,如图2-89所示,每个子菜单的具体含义如表2-6所示。

▲图2-89 3D Object子菜单

表2-6  3D Object子菜单具体含义

菜单

含义

菜单

含义

Cube

立方体

Sphere

球体

Capsule

胶囊

Cylinder

圆柱体

Plane

平面

Quad

四边形

Ragdoll

布偶系统

Terrain

地形

Tree

Wind Zone

风区

3D Text

3D文本

2D Object菜单功能为创建2D游戏对象,主要用于开发2D游戏。其子菜单只有一个游戏对象,该对象为开发2D游戏必须使用的Sprite对象,如图2-90所示。

▲图2-90 2D Object子菜单

Light菜单功能为创建光源对象,其子菜单分别为Directional Light、Point Light、Spotlight、Area Light、Reflection Probe和Light Probe Group,如图2-91所示,每个子菜单的具体含义如表2-7所示。

▲图2-91 Light子菜单

表2-7  Ligth子菜单具体含义

菜单

含义

菜单

含义

Directional Light

平行光

Point Light

点光源

Spotlight

聚光灯

Area Light

区域光

Reflection Probe

反射探头

Light Probe Group

灯光探测器组

Audio菜单功能为创建与声音有关的游戏对象,其子菜单分别为Audio Source和Audio Reverb Zone,Audio Source菜单功能为创建声音源,Audio Reverb Zone菜单功能为创建音频混响区对象,如图2-92所示。

▲图2-92 Audio子菜单

Video菜单功能为创建与视频有关的游戏对象,其子菜单为Video Player,如图2-93所示。Video Player菜单功能为创建一个视频播放管理对象,如图2-94所示。

▲图2-93 Video子菜单

▲图2-94 视频播放对象

UI菜单功能为创建与搭建UI有关的游戏对象,其子菜单分别为Text、Image、Raw Image、Button、Toggle、Slider、Scrollbar、Dropdown、Input Field、Canvas、Panel、Scroll View和Event System,如图2-95所示,每个子菜单的具体含义如表2-8所示。

▲图2-95 UI子菜单

表2-8  UI子菜单具体含义

菜单

含义

菜单

含义

Text

文本控件

Image

图片控件

Raw Image

原始图片控件

Button

按钮控件

Toggle

选项控件

Slider

拖动条

Scrollbar

拖动块控件

Dropdown

下拉列表控件

Input Field

文本框控件

Canvas

画布

Panel

面板

Scroll View

滚动视图

Event System

事件系统

Particle System菜单功能为创建粒子系统对象,选择Particle System,就会在场景中出现一个粒子系统对象。在游戏组成对象列表中选中该粒子对象属性查看器,就会显示此粒子系统对象的具体属性信息,开发人员可以根据需要对属性进行修改,以达到需要的效果,如图2-96所示。

▲图2-96 Particle System组件

Camera菜单功能为创建摄像机对象,选择Camera,就会在场景中创建一个摄像机对象。在游戏组成对象列表中选中该摄像机对象属性查看器中,就会显示此摄像机的具体属性信息,开发人员可以根据需要对属性进行修改,以达到具体需要的效果,如图2-97所示。

 提示 

在每个场景里系统会默认自动创建一个摄像机,并取名为Main Camera,一般情况下都会达到项目要求。

▲图2-97 Camera组件

Center On Children菜单功能为将父对象的位置设置到子对象的中心点上。在游戏组成对象列表中选中一个父对象,选择Center On Children,就会将该父对象的位置移动到所有子对象的平均中心点上。

Make Parent菜单功能为将多个游戏对象创建为父子关系。在游戏组成对象列表中选中多个游戏对象,选择Make Parent,就会将除选中的最上面的对象外的其他所有游戏对象设置为最上面的对象的子对象。

Clear Parent菜单功能为解除子对象与父对象的父子关系。在游戏组成对象列表中选中多个游戏子对象,选择Clear Parent,就会解除选中的多个游戏子对象与父对象的父子关系,使其成为独立对象。

Apply Changes To Prefab菜单功能为将使用预制件实例化的游戏对象的改变应用到预制件上。在游戏组成对象列表中选中使用预制件实例化的游戏对象,选择Apply Changes To Prefab,就会将游戏对象的改变应用到预制件上。

Break Prefab Instance菜单功能为将使用预制件实例化的游戏对象的预制件文件删除。在游戏组成对象列表中选中使用预制件实例化的游戏对象,选择Break Prefab Instance,就会将游戏对象的预制件文件删除。

Set as first sibling菜单功能为在游戏组成对象列表中将子对象移动到其父对象下属的所有子对象的最上面。选中需要移动的子对象,选择Set as first sibling或按Ctrl+=快捷键就会将选中的子对象移动到其父对象下属的所有子对象的最上面。

Set as last sibling菜单功能为在游戏组成对象列表中将子对象移动到其父对象下属的所有子对象的最下面。选中需要移动的子对象,选择Set as last sibling或按Ctrl+-快捷键就会将选中的子对象移动到其父对象下属的所有子对象的最下面。

Move To View菜单功能为移动游戏对象到视图的中心位置。在游戏组成对象列表中选中一个游戏对象,选择Move To View,就会将选中的游戏对象移动到场景设计面板的居中位置,使其在场景设计面板中全部显示。

Align With View菜单功能为移动游戏对象使其与视图对齐。在游戏组成对象列表中选中一个游戏对象,选择Align With View,就会将选中的游戏对象与视图对齐。

Align View to Selected菜单功能为移动视图与游戏对象。在游戏组成对象列表中选中一个游戏对象,选择Align View to Selected,就会将场景设计面板的中心位置移动到选中对象的中心点上,但是选中的游戏对象的位置不变。

Toggle Active State菜单功能为控制游戏对象的激活状态。选中游戏对象,如果游戏对象处于激活状态,选择Toggle Active State或按Alt+Shift+A快捷键,该游戏对象就会变为未激活状态,在游戏组成对象列表中该游戏对象就会变暗,反之亦然。

本小节将对菜单栏中的Component(组件)菜单进行详细讲解,并对其下的每一个子菜单都进行细致的介绍。通过本小节的学习,读者能够清楚地理解Component菜单的功能和作用。

在Unity集成开发环境中,单击Component菜单,会弹出一个下拉菜单,每个子菜单及其对应的快捷键如图2-98所示。

▲图2-98 Component子菜单

Add菜单功能是为场景中的游戏对象添加组件。选择Add或按Ctrl+Shift+A快捷键,就会在属性查看器的下方弹出下拉菜单,然后选择需要添加的组件即可,如图2-99所示。

▲图2-99 Add Component下拉菜单

Mesh菜单功能是为游戏对象添加与网格相关的组件,其子菜单分别为Mesh Filter、Text Mesh、Mesh Renderer和Skinned Mesh Renderer,如图2-100所示,每个子菜单的具体含义如表2-9所示。

▲图2-100 Mesh子菜单

表2-9  Mesh子菜单具体含义

菜单

含义

菜单

含义

Mesh Filter

网格过滤器

Text Mesh

文本网格

Mesh Renderer

网格渲染器

Skinned Mesh Renderer

带骨骼动画的网格渲染器

Effects菜单功能是为游戏对象添加Unity集成开发环境自带的特殊显示效果的相关组件,其分别为Particle System、Trail Renderer、Line Renderer、Lens Flare、Halo、Projector和Legacy Particles,如图2-101所示。

▲图2-101 Effects子菜单

其中,Legacy Particles还有子菜单,如图2-102所示,分别为Ellipsoid Particle Emitter、Mesh Particle Emitter、Particle Animator、World Particle Collider和Particle Renderer。读者根据实际的开发需求,在场景中可以添加适当的特效。每个子菜单的具体含义如表2-10所示。

▲图2-102 Legacy Particles子菜单

表2-10  Effects子菜单具体含义

菜单

含义

菜单

含义

Particle System

粒子系统

Trail Renderer

拖尾渲染器

Line Renderer

线性渲染器

Lens Flare

镜头光晕

Halo

光晕

Projector

投影器

Legacy Particles

旧版粒子系统

Ellipsoid Particle Emitter

椭球粒子发射器

Mesh Particle Emitter

网格粒子发射器

Particle Animator

粒子动画

World Particle Collider

世界粒子碰撞器

Particle Renderer

粒子渲染器

Physics菜单功能是为游戏对象添加物理属性组件,其子菜单分别为Rigidbody(刚体)、Controller(控制器)、Collider(碰撞器)、Joint(关节)、Force(力)等部分,如图2-103所示,具体含义如表2-11所示。读者可以根据实际的开发需求,为场景的游戏对象添加适当的物理特效。

▲图2-103 Physics子菜单

表2-11  Physics子菜单具体含义

菜单

含义

菜单

含义

Rigidbody

刚体

Character Controller

角色控制器

Box Collider

盒子碰撞器

Sphere Collider

球体碰撞器

Capsule Collider

胶囊碰撞器

Mesh Collider

网格碰撞器

Wheel Collider

轮体碰撞器

Terrain Collider

地形碰撞器

Cloth

布料

Hinge Joint

铰链关节

Fixed Joint

固定关节

Spring Joint

弹性关节

Character Joint

角色关节

Configurable Joint

可配置关节

Constant Force

恒力

Physics 2D菜单功能是为2D游戏对象添加物理属性组件,其菜单分别为Rigidbody 2D(2D刚体)、Collider 2D(2D碰撞器)、Joint 2D(2D关节)等部分,如图2-104所示,具体含义如表2-12所示。读者可以根据实际的开发需求,为场景的2D游戏对象添加适当的2D物理特效。

▲图2-104 Physics 2D子菜单

表2-12  Physics 2D子菜单具体含义

菜单

含义

菜单

含义

Rigidbody 2D

2D刚体

Box Collider 2D

盒子碰撞器

Circle Collider 2D

圆圈碰撞器

Edge Collider 2D

边缘碰撞器

Polygon Collider 2D

多边形碰撞器

Capsule Collider 2D

胶囊碰撞器

Composite Collider 2D

混合碰撞器

Distance Joint 2D

距离关节

Fixed Joint 2D

固定关节

Friction Joint 2D

摩擦关节

Hinge Joint 2D

铰链关节

Relative Joint 2D

相对关节

Slider Joint 2D

滑动关节

Spring Joint 2D

弹簧关节

Target Joint 2D

定向关节

Wheel Joint 2D

滚轮关节

Area Effector 2D

区域效应器

Buoyancy Effector 2D

浮力效应器

Point Effector 2D

点效应器

Platform Effector 2D

平台效应器

Surface Effector 2D

表面效应器

Constant Force 2D

恒力

Navigation菜单功能是为游戏对象添加导航组件,其子菜单分别为Nav Mesh Agent、Off Mesh Link和Nav Mesh Obstacle,如图2-105所示。这些组件的具体用法将在后面章节进行具体介绍。

▲图2-105 Navigation子菜单

Audio菜单功能是为场景添加音效组件,其子菜单分别为Audio Listener、Audio Source、Audio Reverb Zone、Audio Low Pass Filter、Audio High Pass Filter、Audio Echo Filter、Audio Distortion Filter、Audio Reverb Filter、Audio Chorus Filter和Audio Spatializer,如图2-106所示,具体含义如表2-13所示。

▲图2-106 Audio子菜单

表2-13  Audio子菜单具体含义

菜单

含义

菜单

含义

Audio Listener

声音监听器

Audio Source

声音源

Audio Reverb Zone

音频混响区

Audio Low Pass Filter

音频低通滤波器

Audio High Pass Filter

音频高通滤波器

Audio Echo Filter

音频回音滤波器

Audio Distortion Filter

音频失真滤波器

Audio Reverb Filter

音频混响滤波器

Audio Chorus Filter

音频合唱滤波器

Audio Spatializer

声源定位

Video菜单功能为创建与视频有关的游戏对象,其子菜单为Video Player,其功能为创建一个视频播放管理对象。

Rendering菜单功能为添加对场景效果进行渲染工作的相关组件,其子菜单分别为Camera、Skybox、Flare Layer、GUI Layer、Light、Light Probe Group、Light Probe Proxy Volume、Reflection Probe、Occlusion Area、Occlusion Portal、LOD Group、Sprite Renderer、Sorting Group、Canvas Renderer、GUI Texture和GUI Text,如图2-107所示,具体含义如表2-14所示。

▲图2-107 Rendering子菜单

表2-14  Rendering子菜单具体含义

菜单

含义

菜单

含义

Camera

摄像机

Occlusion Area

闭塞区域

Skybox

天空盒

Occlusion Portal

闭塞入口

Flare Layer

光晕层

LOD Group

层次级别分组

GUI Layer

UI层

Sprite Renderer

精灵渲染器

Light

光照

Sorting Group

精灵组

Light Probe Group

光探针组

Canvas Renderer

标签渲染器

Light Probe Proxy Volume

光探针代理

GUI Texture

UI图片

Reflection Probe

反射探头

GUI Text

UI文本

Layout菜单功能为添加与UI布局相关的组件,其子菜单分别为Rect Transform、Canvas、Canvas Group、Canvas Scaler、Layout Element、Content Size Fitter、Aspect Ratio Fitter、Horizontal Layout Group、Vertical Layout Group和Grid Layout Group,如图2-108所示,具体含义如表2-15所示。

▲图2-108 Layout子菜单

Miscellaneous菜单功能为添加组件菜单中一些单独的组件,其子菜单分别为Animator、Animation、Network View、Terrain、Wind Zone、Billboard Renderer和World Anchor,如图2-109所示,具体含义如表2-16所示。

▲图2-109 Miscellaneous子菜单

表2-15  Layout子菜单具体含义

菜单

含义

菜单

含义

Rect Transform

矩阵变换

Canvas

标签

Canvas Group

标签组

Canvas Scaler

UI屏幕多分辨率自适应

Layout Element

布局元素

Content Size Fitter

内容大小适配器

Aspect Ratio Fitter

屏幕长宽比适配器

Horizontal Layout Group

水平布局

Vertical Layout Group

垂直布局

Grid Layout Group

网格布局

表2-16  Miscellaneous子菜单具体含义

菜单

含义

菜单

含义

Animator

动画控制器

Animation

动画播放器

Network View

网络视图

Terrain

地形

Wind Zone

风区

Billboard Renderer

标志板渲染器

World Anchor

世界坐标锚

Analytics菜单功能为添加分析跟踪组件Analytics Tracker。某些情况下,API分析自动发送事件到分析服务,然而,自定义事件也可以使用用户定义的触发器发送。这些可以在编辑器和脚本中进行配置和实现。

该选项中包含项目中已经存在的所有脚本,将以命名空间的格式进行分组,使用者可以在其中找到需要的脚本,从而为场景中的游戏对象添加该脚本组件。

Event菜单功能为添加与事件监听相关的组件,其子菜单分别为Event System、Event Trigger、HoloLens Input Module、Physics 2D Raycaster、Physics Raycaster、Standalone Input Module、Touch Input Module和Graphic Raycaster,如图2-110所示。这些组件的具体用法将在后面章节进行具体介绍。

▲图2-110 Event子菜单

Network菜单功能为添加与联网功能相关的组件,其子菜单分别为NetworkAnimator、NetworkDiscovery、NetworkIdentity、NetworkLobbyManager、NetworkLobbyPlayer、NetworkManager等,如图2-111所示,具体含义如表2-17所示。

▲图2-111 Network子菜单

表2-17  Network子菜单具体含义

菜单

含义

菜单

含义

NetworkAnimator

网络动画同步组件

NetworkDiscovery

网络互寻类

NetworkIdentity

网络身份组件

NetworkLobbyManager

多人游戏大厅组件

NetworkLobbyPlayer

游戏大厅身份组件

NetworkManager

网络总管理组件

NetworkManagerHUD

网络状态管理组件

NetworkMigrationManager

网络迁移管理组件

NetworkProximityChecker

网络客户对象可见性控制组件

NetworkStartPosition

网络对象初始位置

NetworkTransform

网络对象Transform属性

NetworkTransformChild

网络对象子物体属性

NetworkTransformVisualizer

控制NetworkTransform可用组件

UI菜单功能为添加与搭建UI相关的组件,其子菜单分别为Effects、Text、Image、Raw Image、Mask、Rect Mask 2D、Button、Input Field、Scrollbar、Dropdown、Scroll Rect、Slider、Toggle、Toggle Group和Selectable,如图2-112所示,具体含义如表2-18所示。

▲图2-112 UI子菜单

表2-18  UI子菜单具体含义

菜单

含义

菜单

含义

Effects

特效组件

Toggle

选项组件

Text

文本组件

Toggle Group

选项组组件

Image

图片组件

Slider

滑动条组件

Raw Image

原始图片组件

Scrollbar

滑动块组件

Mask

遮挡组件

Dropdown

下拉列表组件

Rect Mask 2D

2D矩形遮挡组件

Scroll Rect

滚动条组件

Button

按钮组件

Selectable

可选择组件

Input Field

文本框组件

AR菜单功能为添加与场景中空间映射相关的组件,其子菜单为Spatial Mapping Collider和Spatial Mapping Renderer,如图2-113所示。

▲图2-113 AR子菜单

本小节将对菜单栏中的Window(窗口)菜单进行详细讲解,并对其下的每一个子菜单都进行细致的介绍。通过本小节的学习,读者能够清楚地理解Window菜单的功能和作用。

在Unity集成开发环境中,单击Window菜单,会弹出一个下拉菜单,每个子菜单及其对应的快捷键如图2-114所示。

▲图2-114 Window子菜单

Next Window菜单功能为将当前的视图转换到下一个窗口。选择Next Window,当前的视图会自动切换到下一个窗口,实现在不同的窗口视角下观察同一物体。开发人员可以更加真实地观察场景的搭建效果及游戏中的真实效果,有助于修改。

Previous Window菜单功能为将当前正在操作的窗口自动编辑为当前窗口。选择Previous Window,当前操作的窗口会自动编辑为当前窗口,以方便开发人员进行开发。

Layouts菜单功能为设置整个Unity集成开发环境的整体布局,其子菜单如图2-115所示,分别为布局菜单、保存布局菜单、删除布局菜单和恢复出厂设置菜单。2 by 3,Unity集成开发环境会展现第一种布局。

▲图2-115 Layouts子菜单

Services为Unity服务窗口,在新建项目时会自动显示在编辑器中。Unity服务主要包括广告、分析、多人游戏以及云构建等功能。

查看历史记录,使用者可以在此查看项目的整个历史记录以及所做的任何更改。

Animator Parameter的功能为打开动画控制器参数设置面板,如图2-126所示。在该面板上可以设置用于控制动画播放的参数,这些参数可以在动画播放控制面板中使用。

Scene菜单功能为打开场景设计面板。选择Scene或按Ctrl+1快捷键,即可打开场景设计面板,如图2-116所示。

Game菜单功能为打开游戏预览面板。选择Game或按Ctrl+2快捷键,即可打开游戏预览面板,如图2-117所示。

▲图2-116 场景设计面板

▲图2-117 游戏预览面板

Inspector菜单功能为打开属性查看器。选择Inspector或按Ctrl+3快捷键,即可打开属性查看器,如图2-118所示。

▲图2-118 属性查看器

Hierarchy菜单功能为打开游戏组成对象列表。选择Hierarchy或按Ctrl+4快捷键,即可切换到游戏组成对象列表,如图2-119所示。

▲图2-119 游戏组或对象列表

Project菜单功能为打开项目资源列表。选择Project或按Ctrl+5快捷键,即可打开项目资源列表,如图2-120所示。

▲图2-120 项目资源列表

Animation菜单功能为打开动画设计面板。选择Animation或按Ctrl+6快捷键,即可打开动画设计面板,如图2-121所示。在此不对动画的具体设计做详细说明,后面章节将做详细的讲解。

▲图2-121 动画设计面板

Profiler菜单功能为对Unity集成开发环境中各个功能选项的使用情况及CPU的利用率进行检查。选择Profiler或按Ctrl+7快捷键,即可进入探查窗口,如图2-122所示。

▲图2-122 探查窗口

Audio Mixer菜单功能为打开音频混合器编辑界面。选择Audio Mixer或双击需要编辑的音频混合器资源,就会显示出音频混合器编辑界面,如图2-123所示,在该界面中可以对音频混合器资源进行编辑以达到项目需要的效果。

▲图2-123 音频混合器编辑界面

Asset Store菜单功能为打开资源商店。选择Asset Store或按Ctrl+9快捷键,即可进入资源商店,在里面可以搜索购买资源,如图2-124所示。

▲图2-124 资源商店

Version Control菜单功能为“版本控制”,选择Version Control,打开版本控制面板,如图2-125所示。单击面板中的Settings按钮,Inspector面板中就会显示版本控制的模式以供开发人员选择。

▲图2-125 版本控制面板

Animator菜单功能为打开动画控制编辑器。选择Animator,即可打开动画控制编辑器,如图2-126所示。

▲图2-126 动画控制编辑器

Animator Parameter菜单功能为打开动画控制器参数设置面板。选择Animator Parameter,打开动画控制器参数设置面板,如图2-127所示。在该面板上可以设置用于控制动画播放的参数,这些参数可以在动画播放控制面板中使用。

▲图2-127 动画控制器参数设置面板

Sprite Packer菜单功能为打开精灵打包器面板。选择Sprite Packer,打开精灵打包器面板,如图2-128所示。用户可以在该面板中将具有同一标识(Packing Tag)的精灵打包成同一图集,其中Packing Tag属性在选中精灵的情况下的Inspector面板中。

▲图2-128 精灵打包器面板

Experimental菜单功能为打开基于图像的照明工具面板,其子菜单为Look Dev。选择Look Dev,即可打开基于图像的照明工具面板,如图2-129所示。

▲图2-129 基于图像的照明工具面板

Holographic Emulation菜单功能为打开全息仿真设置面板。选择Holographic Emulation,即可打开全息仿真设置面板,在该面板中可以对有关全系方针的属性进行设置。

Test Runner菜单功能为打开测试面板。选择Test Runner,即可打开测试设置面板,在该面板中可以对不同模式的测试实质进行设置。

Lighting菜单功能为打开光照设置面板与光照资源管理器,其子菜单为Settings和Light Explorer。选择Settings,即可打开光照设置面板,如图2-130所示,在该面板中可以对与光照有关的属性进行设置,选择Light Explorer,即可打开光照资源管理器,如图2-131所示。

▲图2-130 光照设置面板

▲图2-131 光照资源管理器

Occlusion Culling菜单功能为打开遮挡剔除面板。选择Occlusion Culling,即可打开遮挡剔除面板,如图2-132所示,在该面板中可以进行场景的遮挡剔除。

▲图2-132 遮挡剔除面板

Frame Debugger菜单功能为打开帧调试器面板。选择Frame Debugger,即可打开帧调试器面板,如图2-133所示,在该面板中可以详细查看场景绘制的每一步骤。

▲图2-133 帧调试器面板

Navigation菜单功能为打开导航网格设置面板,如图2-134所示。选择Navigation,即可打开导航网格设置面板,并在Scene面板中显示烘焙过的区域。

▲图2-134 导航网格设置面板

Console菜单功能为打开控制台面板。选择Console或按Ctrl+Shift+C快捷键,即可打开控制台面板,如图2-135所示。控制台中将会显示游戏遇到的任何错误、消息或者警告,以及和这个特定错误相关的任何细节,便于开发人员发现这些问题并解决。

▲图2-135 控制台面板

本小节将对菜单栏中的Help(帮助)菜单及其下的每一个子菜单进行详细的介绍。通过对本小节的学习,读者能够清楚地理解Help菜单的功能和作用。

在Unity集成开发环境中,单击Help菜单,会弹出一个下拉菜单,每个子菜单及其对应的快捷键如图2-136所示。

▲图2-136 Help子菜单

About Unity菜单功能为对此Unity集成开发环境进行说明。选择About Unity,打开About Unity界面,如图2-137所示。

▲图2-137 About Unity界面

Manage License菜单功能为对此Unity集成开发环境进行激活操作。选择Manage License,打开License Management界面,如图2-138所示,开发人员可以选择需要的服务。

▲图2-138 License Management界面

第1章对激活进行了详细的介绍。如果没有激活,现在可以进行此操作,详细步骤见第1章。

Unity Manual菜单表示Unity手册。选择Unity Manual,就会在网页浏览器中打开Unity手册,如图2-139所示。初学者可以通过阅读此手册对Unity有更为全面的了解。

▲图2-139 Unity手册

Scripting Reference菜单表示脚本手册。选择Scripting Reference,就会在网页浏览器中打开脚本手册,如图2-140所示。它相当于Unity脚本的字典,只要需要即可查找。无论是初学者还是有经验的开发人员,都需要参考脚本手册。

▲图2-140 脚本手册

Unity Services菜单功能为打开Unity服务界面,如图2-141所示。选择Unity Services,打开Unity服务界面,在该界面可以查看Unity服务的详细介绍并使用Unity服务。

▲图2-141 Unity服务界面

Unity Forum菜单功能为打开Unity官方论坛。选择Unity Forum,打开Unity官网论坛,如  图2-142所示。

▲图2-142 Unity官方论坛

Unity Answers菜单功能为打开Unity问答界面。选择Unity Answers,打开Unity问答界面,如图2-143所示,在该界面可以提交Unity的问题或是查阅其他人的问答内容。

▲图2-143 Unity问答界面

Unity Feedback菜单功能为打开Unity反馈界面。选择Unity Feedback,打开Unity反馈界面,如图2-144所示,有什么好的建议和想法可以通过该界面进行登记和提交。

▲图2-144 Unity反馈界面

Check for Updates菜单功能为检查更新。选择Check for Updates,打开Unity Editor Update Check窗口,如图2-145所示,可以检查是否有新的版本,并进行升级更新。

▲图2-145 Unity Editor Update Check窗口

Download Beta菜单功能为下载Beta版Unity。选择Download Beta,打开下载Beta测试版的Unity集成开发环境界面,如图2-146所示。

▲图2-146 下载Beta测试版的Unity集成开发环境界面

Release Notes菜单功能为打开发行说明界面。选择Release Notes,打开Unity官网上的发行说明界面,该界面中介绍了Unity最新版本的发行说明,包括升级内容和修复的问题,如图2-147所示。

▲图2-147 发行说明界面

Software Licenses菜单功能表示软件许可证。选择Software Licenses,打开legal.txt文件,如图2-148所示,在该文件中我们可以查看软件许可相关内容。

▲图2-148 legal.txt文件

Report a Bug菜单功能为报告错误。选择Report a Bug,打开Unity Bug Reporter窗口,如   图2-149所示,在该窗口中可以报告使用Unity集成开发环境时出现的错误。

▲图2-149 Unity Bug Reporter窗口

Unity是一款功能强大且优雅的集成开发编辑器和引擎,为开发人员提供了创造且发布一款游戏所必需的工具。无论开发人员是要开发一款3D第一人称射击游戏还是休闲的2D智力游戏,Unity自带的功能都有不同的、带有标签的窗口视图,每个视图都提供了不同的编辑和操作功能,以帮助开发人员完成手边的人物。

Unity的许可方式及可选的插件可使读者在需要时得到适量的功能和定制。这款编辑器完全是以资源为中心的,它会为所有不同类型的对象创建物理链接和引用,即便是这些像代码的对象。Unity功能灵活,可供一个独立的开发人员及一个大型的开发团队使用。


相关图书

Unity游戏开发入门经典(第4版)
Unity游戏开发入门经典(第4版)
Unity  3D游戏开发技术详解与典型案例
Unity 3D游戏开发技术详解与典型案例
从零开始:快速入门Unity 3D游戏开发
从零开始:快速入门Unity 3D游戏开发
Unity 3D脚本编程与游戏开发
Unity 3D脚本编程与游戏开发
AR开发权威指南:基于AR Foundation
AR开发权威指南:基于AR Foundation
VR与AR开发高级教程:基于Unity(第2版)
VR与AR开发高级教程:基于Unity(第2版)

相关文章

相关课程