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

Unity开发实战
作者 : (爱尔兰)Matt Smith (巴西)Chico Queiroz 著
译者 : 童明 译
出版日期 : 2014-07-24
ISBN : 978-7-111-46929-2
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 310
开本 : 16
原书名 : Unity 4.x Cookbook
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

本书内容全面且深入,既详细阐述了Unity游戏开发的基本原理,又全方位地讲解了利用Unity进行游戏开发和设计的各种技术细节、方法和最佳实践,并通过100多个实际开发实例,全面解答了Unity开发中所遇到的各种问题,是快速提升Unity开发技能的必备参考。
本书共11章,内容几乎涵盖了Unity游戏开发的所有方面,包括软件安装、用户界面、摄像机、坐标系、制作图形界面、开发脚本组件、控制人物动画、纹理、光照、粒子系统、物理系统、文本文件处理、播放声音和性能优化等,以及一些常用的开发技巧。书中不仅提供了详细的实例操作步骤,还深入浅出地讲解背后的实现原理,同时给出实际开发过程中需要注意的事项,手把手地引导读者深入理解并实践Unity游戏开发。

Unity作为一款跨平台的游戏引擎,能够很容易地部署到各个移动平台,不仅上手容易,并且内置了很多现成的组件,可视化的编辑器也非常易用,已经成为移动平台主要的游戏引擎。Unity提供的模块可以将游戏发布到Windows、Mac、Linux、iOS、Android、Xbox 360、Wii U 和PS3等平台,基于网页的游戏也可以使用Unity插件。
本书通过100多个游戏开发实例,循序渐进地讲解Unity游戏开发的各种技术细节、方法和最佳实践,帮助你全面了解Unity的强大功能,有效解决实际游戏开发过程中所遇到的问题。无论你是Unity的初学者,还是有一定Unity基础的游戏开发者,本书都能帮助你快速提升Unity开发技能。
通过阅读本书,你将学到:
使用Unity的Mecanim系统加强实时人物角色动画。
使用摄像机、图片和Shuriken粒子系统创建迷你地图,控制缩放和在摄像机之间切换。
使用人工智能技术创建非玩家控制的人物角色寻找、跟随、逃离,或者按路径点移动,甚至像一群动物一样聚焦在一起。
让你的游戏可以与微软的Kinect摄像头通信,控制游戏角色,甚至录制你的动作。
使用实时雷达、自定义鼠标光标、模拟时钟和数字时钟、颜色选择框、鼠标悬停时材质高亮、图形化的能量条,以及灵活的背包管理类改进GUI。

Matt Smith 现为爱尔兰布兰察斯镇理工学院(www.itb.ie)高级讲师,之前曾在温彻斯特大学和伦敦密德萨斯大学工作,研究并讲授程序设计、人工智能、Web开发和交互式多媒体近20年。最近几年,Matt主要讲授基于Unity的3D游戏开发和交互式虚拟环境主题等。

Chico Queiroz 资深多媒体设计师,现为TecGraf(Computer Graphics Technology Group)的数字设计师,负责使用Unity为交互式可视化软件开发交互式表现和概念原型。他拥有英国创意艺术大学数字游戏设计专业的硕士学位,并且其毕业设计曾在London Serious Games Showcase和FILE展览。此外,他还是里约热内卢天主教大学(PUC-Rio)的讲师,使用Unity讲授3D游戏建模和相关技术。

图书前言

游戏开发是一项涉及面广且复杂的任务。它是一个跨学科的领域,涵盖各类主题,比如:人工智能、角色动画、数字绘画以及声音剪辑。所有这些领域的知识都可以作为成百上千(或成千上万)的多媒体和数据资源。要将这些资源整合成一个单独的产品,特殊的软件程序(游戏引擎)是必需的。
  游戏引擎是专门的软件,以前属于深奥的领域。昂贵、僵硬,而且极其难用,只有大型工作室或者骨灰级程序员才会使用。
  然后,Unity出现了,随着Unity的问世,开创了真正的民主化游戏开发,Unity是一个容易使用、用途广泛的引擎和多媒体编辑环境。有免费版、独立(Indie)版和包括更多功能的专业版。当笔者写此前言的时候,Unity提供的模块可以将游戏发布到Windows、Mac、Linux、iOS、Android、XBox 360、Wii U以及PS3等平台,基于网页的游戏也可以使用Unity插件。
  现如今,Unity已被全球各种各样的社区开发者使用。有些是学生和业余爱好者,但多数是商业组织,从车库开发者跨度到国际工作室,都使用Unity制作了海量的游戏,你可能也玩过之前提到的某个平台上的游戏。
  本书提供超过100个Unity游戏开发技巧。有些技巧用于演示Unity应用技术的多媒体功能,包括使用动画和预安装的包系统。其他的技巧是用C#脚本开发游戏组件,从使用数据结构和操作数据文件到计算控制角色的人工智能算法等。
  如果你想用简单有序的方式开发出高品质的游戏,想学习如何创建有用的游戏组件,想解决常见问题,那么Unity和本书都适合你。
本书主要内容
  第1章适合那些刚开始或准备开始使用Unity 4.x的读者。该章的内容包括软件安装、界面概念、用户首选项,以及一些使用流程的建议。
  第2章讲解用于控制和加强游戏中摄像机的技巧,还会介绍用有意思的解决方案使用单个或多个摄像机。
  第3章介绍制作贴图和材质,不管你是不是游戏美工,该章都会让你更好地理解如何在Unity 4.x中使用贴图和材质。同时,该章也是一个锻炼图像编辑技能的好资源。
  第4章是关于图形用户界面技巧的教程,可帮助你通过提高交互式可视化元素的品质来增强游戏的娱乐性。你可以学习到很多图形用户界面技术,包括使用鼠标滚轮输入、显示指向罗盘、雷达和图形化的物品栏图标。
  第5章着重讲解角色动画,以及如何利用Unity的新动画系统Mecanim。涵盖的内容从基本角色设置到程序动画(procedural animation)和 ragdoll物理系统。
  第6章致力于让游戏中的音效和配乐更有趣,也涉及播放控制和音量控制技术。
  第7章讲述用外部数据加强游戏的各种方式,比如添加可更新的内容并与网站通信。外部设备如微软的Kinect,能完全改变游戏的交互性。这一章主要学习如何与外部资源和设备进行通信。
  第8章介绍了用不同方式操作文本文件,特别是XML文本数据。因为XML和其他基于文本的数据是人和计算机都可读的,很常用且很有用,所以应该认真学习该章内容。
  第9章涉及很多让计算机控制的对象和角色移动的游戏。对于很多游戏来说动画组件足够了。然而,使用了导向逻辑的人工智能的游戏就不一定了。这一章介绍了很多关于智能导向的技巧,可以带来更丰富且令人激动的用户体验。
  第10章给出了一些在游戏中添加附加功能的创意(暂停、慢镜头、3D立体摄影和保护在线游戏安全)。该章中的其余技巧举例探讨如何提升游戏代码的效率和优化代码的性能。
  第11章简单地介绍了Unity专业版的功能。该章涵盖关于声音、渲染纹理、视频纹理和图片效果的技巧。
阅读本书需要准备什么
  需要Unity 4.x的安装包,可以在 http://www.unity3d.com 免费下载。如果想在第3章中自己创建图片文件,则需要一个图片编辑器,如 Adobe Photoshop(可以在http://www.photoshop.com上找到),或者免费的GIMP(可以在http://www.gimp.org上找到)。
读者对象
  本书适合想全面探究Unity脚本和多媒体功能以及寻找很多游戏功能的现成解决方案的读者。程序员可以探索多媒体功能,多媒体开发人员也可以尝试手写脚本。从新手到高级用户,从美工到开发人员,团队中的每个人都适合阅读本书。

上架指导

计算机\程序设计

封底文字

Unity作为一款跨平台的游戏引擎,能够很容易地部署到各个移动平台,不仅上手容易,并且内置了很多现成的组件,可视化的编辑器也非常易用,已经成为移动平台主要的游戏引擎。Unity提供的模块可以将游戏发布到Windows、Mac、Linux、iOS、Android、Xbox 360、Wii U 和PS3等平台,基于网页的游戏也可以使用Unity插件。
本书通过100多个游戏开发实例,循序渐进地讲解Unity游戏开发的各种技术细节、方法和最佳实践,帮助你全面了解Unity的强大功能,有效解决实际游戏开发过程中所遇到的问题。无论你是Unity的初学者,还是有一定Unity基础的游戏开发者,本书都能帮助你快速提升Unity开发技能。

通过阅读本书,你将学到:

? 使用Unity的Mecanim系统加强实时人物角色动画。
? 使用摄像机、图片和Shuriken粒子系统创建迷你地图,控制缩放和在摄像机之前切换。
? 使用人工智能技术创建非玩家控制的人物角色寻找、跟随、逃离,或者按路径点移动,甚至像一群动物一样聚焦在一起。
? 让你的游戏可以与微软的Kinect摄像头通信,控制游戏角色,甚至录制你的动作。
? 使用实时雷达、自定义鼠标光标、模拟时钟和数字时钟、颜色选择框、鼠标悬停时材质高亮、图形化的能量条,以及灵活的背包管理类改进GUI。

作者简介

(爱尔兰)Matt Smith (巴西)Chico Queiroz 著:暂无简介

译者简介

童明 译:暂无简介

译者序

近年来移动互联网发展迅猛,很多消费者已经将移动端作为主要的使用平台,而移动平台上的游戏应用又是移动平台生态系统中最重要的一块蛋糕。作为一款跨平台的游戏引擎,Unity3D能够很容易地部署到各个移动平台,不仅上手容易,而且内置了很多现成的组件,可视化的编辑器也非常易用,深受广大游戏开发者的喜爱。
  Unity3D目前已经成为移动平台主要的游戏引擎,支持主流的移动计算平台,包括iOS、Android、Windows、BlackBerry,以及PC平台的IE、Chrome和独立可执行程序,甚至还支持PS3和Wii U。内置的组件将物理引擎、声音引擎、碰撞检测、动画组件、场景管理等模块封装得非常易用,让开发者能够更加专注于游戏本身的逻辑开发。而可视化的所见即所得编辑器,可以帮助我们实时预览游戏效果,管理场景中的资源以及项目文件,而且操作起来非常方便。应用市场上已经有大量精良的游戏是使用Unity3D开发的。
  本书由浅入深地介绍了Unity3D的使用,包括用户界面、摄像机、坐标系、图形界面、脚本组件、人物动画、纹理、光照、粒子系统、物理系统、文本文件处理、声音播放、性能优化等以及一些常用的开发技巧,书中有100多个实战技巧,可帮助读者逐步了解和熟悉Unity3D。动手能力强且喜欢自学的读者一定会很喜欢本书。
  书中不仅有详细的案例“操作步骤”,还有“实现原理”、“更多内容”等,手把手地帮助读者在提高的过程中拓展思路。让我们曾经痴迷的某些游戏中的实现原理变得不再神秘,让游戏爱好者可以轻松地开发出自己的游戏。
  希望本书的中文版能够帮助读者找到学习Unity3D的捷径,开发出更多优秀的游戏。
  为了第一时间将书中的精彩内容以中文的方式呈现给各位读者,本人几乎投入了所有的休息时间。在翻译时,我反复揣摩原作者想表达的意图,保证专业术语的正确,并验证实战案例中代码的可执行性。虽力求完美,但书中难免存在疏漏和不足之处,恳请各位读者指正。
  最后,感谢机械工业出版社的编辑对我的信任,还要感谢女朋友任虹对我的支持。

童明
2014年4月于北京

图书目录

译者序
前 言
第1章 Unity 4.X 入门1
1.1 引言1
1.2 安装Unity 4.X1
1.3 设置首选项2
1.4 了解和优化用户界面3
1.5 把Unity中创建的资源另存为Prefab5
1.6 了解Unity中的Content7
1.7 导入自己的Content8
1.8 导入Unity的包到项目中9
1.9 导入自定义包到项目中11
1.10 从项目中导出自定义包12
1.11 添加自定义包到Unity的包快捷列表中13
1.12 使用项目浏览视图14
第2章 使用摄像机17
2.1 引言17
2.2 创建画中画效果17
2.3 在不同摄像机之间切换21
2.4 自定义镜头光晕效果24
2.5 从屏幕内容制作纹理27
2.6 伸缩可变焦的摄像机30
2.7 制作检视摄像机33
2.8 用Shuriken制作粒子效果35
2.9 显示迷你地图38
第3章 制作贴图和材质44
3.1 引言44
3.2 创建反射材质44
3.3 创建自发光材质47
3.4 创建高光纹理贴图51
3.5 创建透明纹理贴图54
3.6 使用cookie纹理模拟多云的户外环境57
3.7 创建颜色选择对话框61
3.8 通过GUI实时组合纹理64
3.9 鼠标悬停时高亮显示材质67
3.10 通过循环加载一组材质实现动画纹理(例如模拟视频)69
3.11 禁用材质剔除71
第4章 创建GUI73
4.1 引言73
4.2 显示数字时钟73
4.3 显示指针时钟75
4.4 用罗盘显示玩家的方向79
4.5 用雷达指示对象的相对位置82
4.6 为对应整数显示相应的图片85
4.7 为对应浮点数和范围显示相应的图片87
4.8 显示数字倒计时器90
4.9 显示图形倒计时器(5,4,3,2,1——发射)91
4.10 显示饼图样式的图形倒计时器93
4.11 创建逐渐消失的消息96
4.12 为单个对象拾取显示物品栏文本97
4.13 为单个对象拾取显示物品栏图标 100
4.14 用一个通用的拾取类管理物品栏102
4.15 用鼠标滚轮控制滚动条105
4.16 实现自定义的鼠标光标图标107
第5章 控制动画111
5.1 引言111
5.2 配置一个人物角色的Avatar和空闲动画111
5.3 用Root Motion和 Blend Trees移动人物角色115
5.4 用层和遮罩混合动画123
5.5 通过脚本重写 Root Motion128
5.6 把刚性道具加入到动画角色中134
5.7 让动画角色投掷物体137
5.8 把 ragdoll物理系统应用于人物角色140
5.9 通过旋转人物角色的身躯瞄准144
第6章 播放和处理声音147
6.1 引言147
6.2 让音调与动画速度相匹配147
6.3 添加自定义的音量控件150
6.4 用Reverb Zones模拟隧道环境155
6.5 防止声音片断在开始播放后又重新开始157
6.6 在对象自销毁之前播放声音158
6.7 制作动态配乐160
第7章 使用外部资源文件和设备166
7.1 引言166
7.2 通过 Unity Default Resources加载外部资源文件166
7.3 通过手动保存文件到Unity的资源文件夹加载外部文件169
7.4 通过从互联网下载文件加载外部资源文件171
7.5 使用静态属性保存和加载玩家数据173
7.6 使用 PlayerPrefs保存和加载玩家数据176
7.7 在游戏中保存截屏178
7.8 使用Zigfu示例在Unity中用微软的Kinect控制角色180
7.9 用微软的Kinect控制器让角色动起来182
7.10 通过从微软的Kinect控制器保存移动来自制mocap184
7.11 用PHP/MYSQL制作排行榜188
第8章 使用外部文本文件和XML数据194
8.1 引言194
8.2 用TextAsset类的公有变量加载外部文本文件194
8.3 用 C#文件流加载外部文本文件195
8.4 用C#文件流保存外部文本文件198
8.5 加载并解析外部的XML 文件199
8.6 用XMLWriter手动创建XML文本数据202
8.7 通过序列化自动创建XML文本数据206
8.8 通过XMLDocument.Save()直接保存XML到文本文件来创建XML文本文件209
第9章 管理对象状态和控制对象移动213
9.1 引言213
9.2 通过玩家的控制器控制立方体的移动213
9.3 控制对象的朝向行为216
9.4 控制对象到对象的移动(寻找、逃离、跟随一段距离)218
9.5 通过flocking控制一组对象移动224
9.6 以前进速度发射实例化的物体229
9.7 寻找一个随机出生点233
9.8 寻找最近的出生点236
9.9 按路径点顺序跟随238
9.10 用状态管理对象行为241
9.11 用状态模式管理复杂的对象行为244
第10章 用附加功能和优化选项改进游戏249
10.1 引言249
10.2 暂停游戏249
10.3 实现慢镜头252
10.4 用偏振投影实现3D 立体投影255
10.5 阻止游戏被托管在未知服务器上259
10.6 用代码分析识别性能的“瓶颈” 261
10.7 通过在“死亡”时间销毁对象减少对象的数量264
10.8 尽可能通过禁用对象减少启用对象的数量265
10.9 通过委托和事件(避免SendMessage)改进效率268
10.10 用Coroutine定期执行函数并且独立于帧率271
10.11 用几个带有Coroutine的帧分摊大计算量272
10.12 缓存,而不是使用反射和查找对象274
第11章 利用Unity专业版278
11.1 引言278
11.2 用景深动态地聚焦对象278
11.3 创建后视镜280
11.4 在场景中播放视频284
11.5 用音频滤镜模拟水下环境286
11.6 加载和播放外部电影文件288

教学资源推荐
参考读物推荐
作者: 刘振安 刘燕君 编著
作者: [美] 马特?诺伊贝格(Matt Neuburg)著
作者: 康莉 李宽 陈国建 等编著