首页>参考读物>计算机科学与技术>软件与程序设计

Unity游戏开发实战(原书第2版)
作者 : [美]迈克尔·曼徳(Michelle Menard),布莱恩·瓦格斯特夫(Bryan Wagstaff) 著
译者 : 占红来 译
出版日期 : 2015-11-19
ISBN : 978-7-111-51642-2
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 319
开本 : 16
原书名 : Game Development with Unity,Second Edition
原出版社: Cengage Learning
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

本书结合Unity这种多平台的集成引擎和编辑器,介绍如何使用Unity创建游戏、添加交互性,以及修饰游戏并发布游戏的所有知识。本书分为五部分,每一章都介绍一个独立的概念,并且循序渐进地讲述新的概念,还使用一个综合的游戏项目贯穿全书。在本书中,读者将学到所有重要的界面命令,如何设置和组织项目,以及创建并运行一个3D游戏的所有基础,从角色导入到脚本,再到声音。本书还将介绍基本的游戏和关卡设计理论与特殊的技巧。
本书为读者提供了使用Unity来创建自己的游戏所需要的全面信息,适合业余游戏制作人、专业开发人员以及计算机专业的学生阅读。

Unity是一款跨平台的专业游戏引擎,其简易的界面、友好的开发环境和对所有流行游戏平台的广泛支持使得Unity引擎成为学生、独立开发者和大型开发团队的绝佳选择。通过Unity这样一个多平台的快速原型构建工具,开发人员可以在开发完一个游戏之后,同时发布到Android、iOS和网页等多种平台上。本书以一种教程的形式,全面介绍Unity编辑器的相关知识,从资源导入到最终发布。
通过阅读本书,你将学到:
设计和层级理论基础
虚拟世界中的原型概念
游戏资源的收集
游戏交互性的实现
游戏特效系统(光影、粒子系统、音效等)的完善
游戏的发布和构建

原书配套辅助网站提供的一些相关资源,读者也可以通过华章网站(www.hzbook.com)下载。阅读本书,你的Unity游戏开发之旅必定其乐无穷。
作者简介
Michelle Menard 是一名自由作家和游戏制作人。在取得布朗大学的应用数学和音乐双学位之后,她决定转到游戏行业,攻读萨凡纳艺术设计学院的游戏设计美术专业硕士。
译者简介
Bryan Wagstaff 是一名游戏开发工程师。他在小学时就通过“猜数字”类的游戏发现了自己在编程方面的浓厚兴趣。他在韦伯州立大学拿到了计算机科学专业的学士学位,之后在杨百翰大学三维图像实验室进行了研究生阶段的学习。在其职业生涯中,他开发过视频游戏,还做过广播电视、交互式会议系统,等等。他现在和他的妻子以及三个女儿住在盐湖城。
占红来 2010年毕业于华中科技大学。2013年毕业于中国工程物理研究院,同年加入ThoughtWorks就职软件咨询师,主要从事前端开发工作。长年热衷于游戏鉴赏,对于RTS、FPS、RPG、MOBA、页游、手游等均有涉猎。对于Unity这样一款产出了神庙逃亡、仙剑奇侠传6、炉石传说等经典游戏的引擎亦颇有钻研。热爱中国传统文化,喜欢《三国演义》等经典书籍,也非常热衷于各种三国题材的游戏。闲暇时喜欢与同事好友打打篮球,不喜与人相争。

图书前言

首先,欢迎使用Unity引擎!不管你是游戏开发新手还是展望新技术的经验丰富的专家,Unity引擎都可以给予你很多。Unity引擎可以在Mac、Linux和Windows操作系统上创建游戏,这些游戏几乎能够部署在任何平台上,从网站到Xbox和PlayStation(限注册开发者),以及移动设备如手机和平板电脑等。简易的界面、友好的开发环境和对所有流行游戏平台的广泛支持使得Unity引擎成为学生、独立开发者和大型开发团队的绝佳选择。
Unity的客户群里有这样一些名字:Ubisoft、Disney 和 Eletronic Arts,但与此同时它也被小型独立工作室、学生群体、业余爱好者广泛使用,甚至还有游戏产业之外的公司用Unity引擎来做医学仿真和建筑学模拟。不管最终目的是什么,Unity允许任何背景的任何人,创造出有趣的互动内容。让我们开始吧。
本书内容
这是一本介绍Unity引擎的书。它解释了Unity需要提供什么,以及不管你要用它做什么都会用到的一些Unity最佳实践。如果你是一名爱好者或者学生,你或许可以按部就班从第1章开始阅读。如果你想通过本书来判断Unity是否适合你,你最好选择性地阅读相关的章节。如果你是从第1章开始阅读,你会学到所有重要的界面命令,你会知道如何创建和管理项目,你会知道如何创建和启动基础的3D游戏,从角色导入到脚本到声音。在完成样例项目之后,所有这些知识足以让你做出一个属于你自己的游戏。
本书不是一个游戏开发与设计标准理论的速成课。我的意思是不能确保你能对所有需要了解的知识,如设计、编程、美工、音效都有所建树。本书涵盖的每一个主题(如游戏设计)都包含一些基本理论和一些足以让你正常工作的词汇以及介绍性概念。本书不会让你成为一个设计之星或者世界级编程大师,因为这需要多年的学习和锻炼。
如果看完本书之后,你对于其中的特定部分感兴趣,你可以在附录D中找到更多有用信息。你可以把本书看成是一个跨越多个领域的大杂烩,而不是在某一领域中深入钻研。更多进阶的、新异的主题,比如网络集成以及关于Unity着色语言的讨论,都没包含在书中。
阅读对象
那么本书到底面向哪些人呢?如果你属于下面几类之一,那么恭喜你选对书了:
寻找使用Unity引擎的全面信息的独立开发者或者多面手。
为将来项目评估Unity引擎的开发者。
在某些具体领域需要指引的爱好者。
想知道游戏开发是否适合自己的学生(或者准学生)。
想用一个负担得起(或者免费)的专业引擎制作一款游戏的人。
如上所述,所有的游戏开发部分覆盖了一些基础的背景知识和一些关键术语。然而,如果你想在样例项目之外工作,可能还需要一些其他知识和技能。本书中不包含诸如3D美工资源的创建以及如何使用3D模型包的内容。本书中所有需要用到的模型都放在辅助网站上(稍后会有更多),但是没有描述这些模型是如何创建的。如果在阅读本书时按样例项目操作,你基本上不需要任何其他知识或者技能(有就更好)。如果你想使用本书作为指导来从头开始自己的项目,你可能需要在其他领域进行更多学习,或者找找其他提供美工和代码的地方或者人。如果你懒得创建模型或者动画,在Unity商店中有大量的免费和付费资源,也有很多相关的社区可以帮到你。
本书结构
本书分为五部分,每个部分分别代表了游戏开发的一个方面。在每一个部分里,各个章节都侧重于某一个概念,比如第1章讲人工智能开发,另有一章讲粒子效应。如果你在Unity的某一个地方需要帮助,可以找到相关章节。附录包含一些非常实用的快捷键、一些使用最多的类的清单以及一些对应的练习,阅读完之后可复习一些要点。
我尝试使用一些一般性的格式化指南来让学习Unity引擎更加直截了当。你在引擎中需要逐步完成的步骤都带有数字序号。如果在书中看到这样的数字序号,你可以打开Unity然后照着序号逐步完成。
步骤之间的连接或者层级菜单是通过>符号来标记的。比如“My Documents > My Unity Project”表示打开My Documents 文件夹然后打开其中的My Unity Project文件夹。引擎中使用的代码都按照代码自身的格式展示,例如:

最后,有一些额外信息作为特殊段落穿插在文中。这些额外信息包括更高级的技术数据或者引擎规格,这些信息都不是每日使用引擎所必须的,但是它们的确非常有用。同时请注意分散在书中的各种小贴士、提示和注意,这些往往都是很重要的相关知识,如一些常见的陷阱以及如何避免潜在的难以修复的灾难等。如果书中有用图形修饰的东西,你最好多看几眼。
安装指南
Unity的安装过程需要保持网络畅通,通常这个过程非常迅速,用户体验良好。Unity有免费的基础版和专业版两个版本。两个版本都会有开发人员定期更新,虽然你在激活软件之后不需要再连接网络,但是仍然建议你保持网络畅通以便补丁升级和修复。
Unity引擎
首先,安装Unity。你可以从Unity技术网站下载,网址为:unity3d.com/ 。在下载菜单中,选择适用于你自己电脑的Mac版或者Windows版(本书中以Windows版为例)。你可以直接下载免费的Unity基础版或者试用Unity专业版,专业版可以免费试用30天。本书中所讲的内容在两个版本下都没有问题,但是看看专业版有哪些炫酷的功能也很有趣。
请注意,Unity已经不断改进,并且已经包含了很多功能,因此也会占用部分磁盘空间。安装包大约为1GB,安装包的下载时间和网络状况有关系,在比较快的宽带连接下,一般几分钟就能下载完成。
安装包下载完成后,运行 UnitySetup###.exe应用程序,接受协议条件,然后按照屏幕上的命令操作。在Choose Components界面,如图I.1所示,需要确保 Example Project 前的复选框被选中。如果你想把你的游戏发布到网络上,你可以同时选中Unity Development Web Player复选框。另外,即使你有自己的开发环境,仍然可以考虑选上MonoDevelop复选框,因为MonoDevelop编辑器的附带版本有一些其他编辑器很难提供的特殊功能。如果你后面改主意了,你可以重新执行安装程序来添加或者删除组件,之后点击下一步来完成安装。
安装路径可以使用默认路径或者选择自己的安装路径,然后点击安装按钮。Unity需要大约5GB的磁盘空间来安装,所以请确保所选择的安装路径有足够的空间,并且后续使用时可能会需要安装一些附件也需要占用磁盘空间。按照屏幕上的提示来完成安装。

图I.1 默认会选中所有组件,需要约5GB存储空间
安装完成之后,Unity会提示你注册,如果使用的是基础版或者试用专业版,这个注册很简单,选择网络注册版本然后填写引擎提供的网页上的表单,表单通常就只需要你的名字和邮箱地址。在此之后,你就可以放心地使用Unity了。引擎安装完毕后,就可以去看辅助网站上的内容了。
使用辅助网站
需要使用辅助网站时,可以登录www.cengageptr.com/dowmloads,然后在搜索框中输入本书的名字进行查找。辅助网站分成几个主要部分:
章节(Chapters):这个文件夹包含本书中每一章的子文件夹。如果需要使用文件或者资源,你可以整个章节的文件夹到硬盘上或者只选取几个需要的独立文件。本文会始终声明何时会用到什么文件,以及如何获取这些文件。
设计文档(Design Documents):这个文件夹包含本书中所讨论的样例项目(即Widget这个游戏)的所有基础信息。书中提到请看设计文档时,指的就是此处的设计文档。
着色器测试(Shader Test):这是一个将样例项目和Unity中可用的基础着色器方方面面做比较和细化的部分。如果你不确定应该用哪个着色器,或者某些着色器在特定灯光装饰下会有什么变化,可以根据自己的需要修改和使用这个文件。
最终项目文件(Final Project Files):与章节文件夹不同的是,这个部分包含所有本书中出现的单独文件。最终项目文件这个文件夹是Widget游戏的一个完整的Unity项目。如果你在某个点卡住了,或者想看看某些东西是怎么组合在一起的,你可以从这个地方拿到游戏的完整项目。额外的资源,比如更多的模型、材质和UI元素也包含在这个地方,将来如果想继续扩展,你可能会用到这些。
可选安装
在Unity和辅助网站之间,你可以完成本书中的每一个练习或者把样例项目启动起来。然而,你可能想自己四处拖动一个图像或者材质,或者甚至雕刻一个新模型用来引入。本书中在适当位置和附录D中提到了一些免费的软件包,如果你的电脑上没有这些软件包,可以看看附录找找链接。
Unity自带MonoDevelop编辑器,该编辑器可以用来免费写脚本,但是你也可以使用自己喜爱的编辑器。第6章包含了兼容的其他编辑器,而且附录D也提供了一些合适的链接。
离别赠言
你的脑海中或许已经有铺天盖地的游戏点子了,又或许你已经开始制作一个你梦寐以求的游戏了。或许你以往做过一些小的项目,现在想使用一个专业引擎而不是什么事情都自己做,又或许你已经制作过两三个游戏了,等等。把自己琐碎的想法融入一个真正可以玩的游戏里面确实很了不起,但是你实际上真正完成了多少呢?做一个游戏是一个相当大的承诺,你需要考虑成堆的挫折、设计的变更以及软件的崩溃,有时候这么多的付出只是因为你希望用户也像你一样喜欢这个游戏。我们开始一项工作之后,如果中途休息一会就很难回去继续之前的工作了。你告诉别人这不是拖延症,只是一小会的离开,你想休息休息眼睛或者整理整理自己的想法。这一小会可能开始是一周,然后逐渐变成一个月或者数年,而这一小会里面,你那个没有完成的小游戏却一直放在角落里,布满了灰尘。
在游戏开发中,这是一个很难解决的问题,有时候你按照一个想法走,然后碰到障碍,你要么绕过这个障碍要么跨越这个障碍。另外有些时候你还必须承认当初的想法是错误的,它并不像预期的那么棒,或者这个想法过于平凡,没有什么亮点。千万不要半途而废,你可以试试其他的途径,即便你自己都不确定新的途径会把你带到何处。或许新的办法也不起作用,但是也有可能它恰好可以解决这一大堆问题。尝试、犯错、学习,然后再次尝试,你要敢于犯错,并从错误中学习,坚持按照自己的方式战斗到游戏做完的那一刻。没有游戏是完美无瑕的,但是你一定可以坚持到做完的那一天。
完成一个游戏,然后完成下一个。即便你觉得这个游戏非常垃圾,你甚至觉得给你母亲看都很尴尬,那也没有关系。不管怎样你可以给她展示这个游戏。这个游戏可能很糟糕,但是也有可能它还行。不管怎么样,你可以分析一下你做的什么是起作用的,什么是不起作用的。分析的过程也是学习和创造的过程,但是一定不要中途停止。如果觉得很气馁,你完全可以休息一会,但是休息完了一定要记得回来继续做。朋友的支持会对你有很大的帮助,你可以找一些朋友来试玩你的游戏,或者为此开个派对来纪念你所做的事,记得一定要玩得开心,因为如果你自己不开心,也很难做出让人开心的游戏。
在我们的游戏快要完成的某一个晚上,我坐在自助餐厅里,与一帮同事在吃着“神秘的块状食品”。有人说:“已经8点了,我仍然在做这个看起来永远不会结束的项目,我应该把时间花在别的地方,你能不能告诉我你为什么还在这里?”另外一个同事回答了他,回答得非常真诚,他说:“因为我们热爱它,不管我们面对了多少困境,我们仍然热爱它,我们非常热爱创造这些可以娱乐成千上万人的游戏,我们不仅仅是工作到很晚,每天吃着油炸块状食品,我们是在给世界带来一点启迪和欢乐,就像块状食品一样,大部分人都不知道里面是什么,但是当他们玩游戏时,他们可以享受到生命中的愉快时刻,想想这些我就觉得我们的付出都是值得的。”
保持激情,开发游戏是一项工作,而且这项工作有时候挺难的,有时候还很痛苦,有时你会很失望,对结果很不满意。继续努力,分享你的激情,做最好的自己。游戏开发是一个强大的职业,我们创造、教育、娱乐和启发了新的世界。我们从一个空白的文件开始,到做出一个可以改变世界的完整的产品,做一个游戏开发者吧。

上架指导

计算机\游戏开发

封底文字

Unity是一款跨平台的专业游戏引擎,其简易的界面、友好的开发环境和对所有流行游戏平台的广泛支持使得Unity引擎成为学生、独立开发者和大型开发团队的绝佳选择。通过Unity这样一个多平台的快速原型构建工具,开发人员可以在开发完一个游戏之后,同时发布到Android、iOS和网页等多种平台上。本书以一种教程的形式,全面介绍Unity编辑器的相关知识,从资源导入到最终发布。通过阅读本书,你将学到:
 设计和层级理论基础
 虚拟世界中的原型概念
 游戏资源的收集
 游戏交互性的实现
 游戏特效系统(光影、粒子系统、音效等)的完善
 游戏的发布和构建
原书配套辅助网站提供的一些相关资源,读者也可以通过华章网站(www.hzbook.com)下载。阅读本书,你的Unity游戏开发之旅必定其乐无穷。

作者简介

[美]迈克尔·曼徳(Michelle Menard),布莱恩·瓦格斯特夫(Bryan Wagstaff) 著:暂无简介

译者简介

占红来 译:暂无简介

图书目录

关于作者
前 言
致 谢
第一部分 写在最开始
第1章 Unity引擎概述 2
1.1 了解Unity界面 2
1.1.1 项目视图 3
1.1.2 层级视图 6
1.1.3 审查器 7
1.1.4 工具栏 8
1.1.5 场景视图 9
1.1.6 游戏视图 16
1.1.7 动画和动画器视图 19
1.1.8 分析器和版本控制 19
1.1.9 自定义编辑器 20
1.2 Unity的基础概念 20
1.3 Unity可用的授权 21
第2章 你的第一个游戏:从哪里开始 23
2.1 基础设计理论 23
2.2 找到核心想法 26
2.2.1 头脑风暴 26
2.2.2 研究其他游戏 27
2.2.3 纸上原型:这并不是商业软件独有的 28
2.3 制订计划 29
2.3.1 基础大纲 29
2.3.2 一个简单的层级文档 31
2.4 开始 32
第二部分 准备游戏资源
第3章 设置舞台地形 36
3.1 Unity的地形引擎 36
3.2 自定义地形 40
3.2.1 使用高度图来创建高度 40
3.2.2 用画笔绘制高度 41
3.2.3 绘制纹理 44
3.2.4 摆放树木 47
3.2.5 用草和细节网格把它弄乱一点 50
3.2.6 地形设置 54
3.3 光照和阴影 55
3.4 添加天空盒和距离雾 57
3.5 给地形添加水 57
第4章 创建你的环境:导入基础自定义资源 59
4.1 先设计再创建 59
4.1.1 导入纹理 60
4.1.2 更多关于导入 61
4.1.3 支持的格式 64
4.2 给Widget的地形导入纹理 64
4.3 导入基础网格 70
4.4 设置简单着色器和材料 73
4.4.1 Unity提供的着色器 73
4.4.2 凸凹、高光、立方和细节 75
4.4.3 指定着色器和材料 77
4.4.4 制作自定义天空盒材料 81
4.4.5 添加水 81
4.5 使用资源小贴士 83
4.5.1 预制件 83
4.5.2 多选和组织分组 84
4.5.3 对齐网格 85
4.5.4 返修地形 85
第5章 创建角色 87
5.1 基础游戏角色101 87
5.2 Unity中的角色能力 88
5.3 导入角色和其他非静态网格 88
第三部分 通过交互给你的道具赋予生命
第6章 Unity脚本 98
6.1 一个编辑器、三种语言、许多选择 98
6.2 选择一个脚本编辑器——或者“你是否需要自动补全?” 100
6.3 Unity脚本基础 101
6.3.1 两个有用的东西 102
6.3.2 变量 102
6.3.3 运算符和比较运算符 111
6.3.4 条件语句 114
6.3.5 循环 117
6.3.6 函数 118
6.3.7 变量作用域 120
6.3.8 命名约定 121
第7章 编写角色和状态控制器脚本 122
7.1 开始和布局 122
7.2 简单的第三人称控制器 123
7.2.1 控制器变量 124
7.2.2 Unity的MonoBehaviour类 125
7.2.3 设置Unity的输入管理器 130
7.2.4 连接镜头 134
7.2.5 更新角色控制器 141
7.3 完整的脚本 142
第8章 连接动画 148
8.1 Unity中的动画 148
8.2 动画API 148
8.2.1 Mecanim动画系统 149
8.2.2 Animation类 149
8.3 设置玩家角色的动画 151
8.3.1 定义清楚问题 151
8.3.2 更新控制器 151
8.3.3 创建动画状态管理器 152
8.4 在Unity中创建动画 156
8.4.1 一些基础概念 156
8.4.2 动画视图 156
8.4.3 设置一个新的动画剪辑 157
8.4.4 连接动画 161
8.4.5 添加动画事件 162
8.5 完整脚本 163
第9章 使用触发器和创建环境交互 168
9.1 触发器和碰撞器 168
9.1.1 设置一个基础触发器对象 169
9.1.2 设置其他类型的触发器 175
9.2 完整脚本 179
第10章 创建敌人和人工智能 184
10.1 人工智能:主要是人工,其实没多少智能 184
10.1.1 一些简单的AI指南 185
10.1.2 简单的工作流程 186
10.2 设置一个简单的敌人 186
10.2.1 AI控制器 188
10.2.2 兔子的简单状态管理器 193
10.3 绑定Widget的攻击 194
10.4 获胜之后给玩家一些奖励 196
10.5 繁衍和优化 197
10.6 完整脚本 199
第11章 设计游戏的GUI 205
11.1 基础界面理论 205
11.1.1 交互的步骤 205
11.1.2 为用户而设计 206
11.2 Unity的GUI系统 207
11.2.1 按钮 208
11.2.2 滑块 208
11.2.3 标签和块 209
11.2.4 文本输入 209
11.2.5 开关 210
11.2.6 工具栏和选择网格 210
11.2.7 窗口 210
11.3 Widget的自定义皮肤 212
11.3.1 创建GUISkin 212
11.3.2 定义自定义样式 213
11.3.3 导入新字体 213
11.4 设置游戏状态显示 214
11.4.1 GUIContent() 215
11.4.2 角色展示 218
11.4.3 Widget的角色展示 218
11.4.4 敌人的显示面板 220
11.4.5 分辨率 222
11.5 简单弹出框 223
11.6 添加全屏菜单 226
11.7 完整脚本 228
第四部分 打磨和收尾工作
第12章 创建光线和阴影 238
12.1 光照类型 238
12.1.1 光照属性 239
12.1.2 光照基础 241
12.2 照亮游戏世界 242
12.3 创建阴影 244
12.3.1 光照图 244
12.3.2 投射阴影 245
12.4 其他光照效果 247
12.4.1 镜头光斑 247
12.4.2 遮挡 247
第13章 使用粒子系统 249
13.1 粒子:从烟到星尘 249
13.2 做一个简单的系统 250
13.2.1 粒子系统 251
13.2.2 高级粒子系统 254
13.3 Widget的粒子系统 255
13.3.1 可拾取物品 255
13.3.2 关卡激活 256
13.3.3 Widget的攻击 257
13.4 完整脚本 260
第14章 添加音效和音乐 265
14.1 反馈和环境 265
14.2 设置一个简单音频剪辑 266
14.2.1 环境音效 268
14.2.2 通过脚本控制声音 269
14.2.3 添加背景音乐 270
14.2.4 整体效果比各个部分的总效果还要好 270
14.3 完整脚本 271
第五部分 发布游戏
第15章 Unity基础调试和优化 274
15.1 Unity中的调试 274
15.1.1 控制台 275
15.1.2 日志文件 275
15.2 优化 277
15.2.1 分析器 277
15.2.2 代码优化 277
15.2.3 仿真 278
15.2.4 渲染统计页面 279
15.2.5 缩小文件大小 280
15.2.6 其他优化图像的方式 280
第16章 创建最终的构建 282
16.1 准备构建 282
16.1.1 设置玩家 282
16.1.2 最后的Application类 284
16.1.3 构建设置 285
16.2 其他构建功能 286
16.2.1 资源包 286
16.2.2 资源文件夹 286
16.2.3 打包资源以备后用 287
16.3 路的尽头 288
第六部分 附录及其他资源
附录A 快捷键和热键 290
附录B 通用类 292
附录C 继续前进 296
附录D 资源和参考资料 299

教学资源推荐
作者: (美)Y.Daniel Liang 著
作者: Tom Cargill
作者: 顾治华 陈天煌 忽朝俭
参考读物推荐
作者: (美)Eric Rochester 著
作者: (美)W. Clay Richardson Donald Avondolio Joe Vitale Scot Schrager Mark W. Mitchell Jeff Scanlon
作者: [美]马特·利博维茨(Matt Liebowitz) 克里斯托弗·库塞克(Christopher Kusek) 吕南德特·施皮斯(Rynardt Spies) 著
作者: 康博创作室