Unity 4.X从入门到精通
书 号:9787113175573
丛 书 名:
作 者:Unity Technologies
译 者:
开 本:大16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:158元
-
内容简介
本书分为操作篇和开发篇两部分。操作篇从初学者的角度来讲解Unity引擎的相关知识,详尽介绍了Unity编辑器的使用方法、资源导入流程以及如何使用Unity引擎创建一个基本的游戏场景,并分别介绍了Shuriken粒子系统、Mecanim动画系统、物理系统、Lihtmapping烘焙技术、NavigationMesh寻略技术、Umbra遮挡剔除技术、屏幕后期渲染物资等。开发篇为想深入了解Unity引擎开发知识及真正从事商业游戏开发的人员提供了宝贵的技术资料,其中包括了Unity脚本开发基础、输入与控制、GUI开发、Shader开发、网络开发、编辑器扩展等诸多内容,同时提供了AssetBundle工作流程、脚本调试与优化、跨平台发布等多项高级内容,最后以一个第三人称射击游戏为例,向读者充分展示了游戏实战开发的过程。本书适用于对Unity感兴趣的读者,也适用于从事Unity工作的人员,更适用于Unity培训学校或者机构。 -
前言
在过去的几年中,中国游戏产业经历了一场深刻的变革。在大型客户端游戏火爆了8年之后的2008年,网页游戏突然崛起,虽然在游戏画面和互动模式等方面都与客户端游戏相去甚远,但网页游戏的发展速度却异常迅猛,玩家数量一路高速增长。2009年,智能手机的普及大潮汹涌而来,越来越多的移动平台加入了竞争,包括iOS、Android、Windows Phone等平台迅速兴起,在移动平台上运行高质量的3D游戏也已经成为了现实,从而将大量游戏玩家从PC端吸引到了移动端,同时也吸收了众多新的玩家,实现了玩家数量的进一步激增。从大型客户端游戏、网页游戏到移动游戏,游戏终端的日渐丰富增加了玩家的选择,但也给游戏开发商造成了一定的困扰。由于各个平台的开发方式截然不同,之间又存在着激烈的竞争,导致游戏开发商很难选择从哪个平台入手开发游戏,而把游戏从一个平台移植到另一个平台也往往需要很大的工作量。
另一方面,移动游戏的爆发颠覆了游戏行业的传统格局,重新定义了整个行业的发展趋势,使得游戏公司的定义和游戏产品的形态都发生了根本的变化:一方面,个人开发者开始有能力成立游戏工作室并独立制作游戏;另一方面,快速更新和迭代成为了游戏产品成功的重要因素。游戏作品俨然已经成为了一种快速消费品。面对这样的局面,如何快速高效地开发出成熟稳定的商业游戏也成为了游戏开发商面临的重要课题。
Unity引擎就是在这样的背景下逐渐走入了中国开发者的视野。Unity是由UnityTechnologies公司开发的专业游戏引擎。在跨平台方面,Unity引擎一直是业界的领跑者,在Unity 4.3版本中,Unity支持Windows、Mac OS X、Web browsers、iOS、Android、PlayStation 3、Xbox 360、Windows Store、Windows Phone、Linux、Blackberry 10、Wii U、PlayStation 4、PlayStation Vita、PlayStation Mobile、Samsung Tizen、Xbox One等几乎所有的主流平台,开发者可以通过一次开发,进而以极小的代价发布到多个平台上去。
在快速开发方面,Unity引擎支持C#、JavaScript和Boo三种脚本语言,同时支持所有主要的美术资源文件格式,能够让一个从来没有游戏开发经验的开发者在短短几个小时之内就参照例子制作出一款3D的FPS游戏;也能够让单个游戏开发者在短短几天之内就有可能开发出一款高质量的商业游戏。Unity所提供的简易工作流并不意味着它的功能简单,Unity具有高度优化的图形渲染管道,内嵌了Mecanim动画系统、Shuriken粒子系统、Navigation Mesh寻路系统等,同时还引入了众多业界知名的游戏中间件,包括Autodesk Beast烘焙工具、Umbra遮挡剔除工具、NVIDIA PhysX物理引擎等。
特别地,Unity引擎还提供了一个网上资源商店(Asset Store),任何Unity引擎用户都可以在这个平台上购买和销售Unity相关的资源,包括3D模型、材质贴图、脚本代码、音效、UI界面、扩展插件等。用户可以通过下载资源商店的内容节省宝贵的项目开发时间和成本,也可以通过它来销售自己制作的产品。更加难能可贵的是,Unity还为用户提供了一个知识分享和问答交流的社区(http://udn.unity3d.com/)。截至2013年6月,Unity已经拥有超过200万的注册开发者,他们在这个社区里获取信息并分享经验,形成了一个异常良好的互助环境。
至今,Unity引擎已经得到了越来越多中国开发者的青睐,成为了大家竞相学习和使用的开发工具。那么,应该如何学好Unity引擎呢?目前,Unity虽然有大量的英文技术资料,但中文资料还偏少,这往往令一些初学者望而却步;另一方面,对Unity引擎有一定了解的用户也迫切需要一本高质量的进阶书籍,从而加深对Unity的了解并提高实际开发项目的能力。本书的面世能在一定程度上解决这一问题,无论初学者还是对Unity有一定了解的用户,都能够通过本书学到对自身有益的相关知识,提高对Unity引擎的实际应用能力。
本书由Unity Technologies主编。全书分为操作篇和开发篇两个部分。操作篇(1~11章)从初学者的角度来讲解Unity引擎的相关知识,详尽介绍了Unity编辑器的使用方法、资源导入流程以及如何使用Unity引擎创建一个基本的游戏场景,并分别介绍了Shuriken粒子系统、Mecanim动画系统、物理系统、Lightmapping烘焙技术、Navigation Mesh寻路技术、Umbra遮挡剔除技术、屏幕后期渲染特效等,该部分通过多个操作实例帮助入门者快速掌握Unity引擎的各个知识点,即便是毫无编程经验的人员,都可以参照这部分内容快速学会如何使用Unity制作简单的游戏。开发篇(12~21章)则为想深入了解Unity引擎开发知识以及真正从事商业游戏开发的人员提供了宝贵的技术资料,其中包括了Unity脚本开发基础、输入与控制、GUI开发、Shader开发、网络开发、编辑器扩展等诸多内容,同时提供了Asset Bundle工作流程、脚本调试与优化、跨平台发布等多项高级内容,最后以一个第三人称射击游戏为例,充分向读者展示了游戏实战开发的过程。
此外,Unity公司已经在大中华区(内地、台湾省、香港特别行政区)推出了认证考试项目,本书也可作为参与考试的备战教材使用。
最后,相信本书一定会为提高开发者使用Unity引擎的能力起到一定的促进作用!也希望本书能够为中国游戏玩家带来越来越多的使用Unity引擎开发的精彩游戏!
Unity大中华区技术总监 刘钢 -
目录
目录
操 作 篇
第1 章 Unity 介绍.............................. 1
1.1
Unity 简介........................................................ 2
1.2
Unity 的历史................................................... 9
1.3
Unity 游戏介绍.............................................11
1.4
Unity 在严肃游戏领域的应用................13
1.5
软件安装........................................................ 15
1.5.1
在Windows 下的安装.................16
1.5.2
在Mac 下的安装.........................20
1.6
购买许可证...................................................23
1.7
Unity 相关资源与本书约定...................27
1.7.1
Unity 相关资源............................27
1.7.2
本书约定......................................27
第2 章 Unity 编辑器........................ 29
2.1
界面布局........................................................30
2.2
工具栏............................................................ 32
2.3
菜单栏............................................................34
2.3.1
File (文件)菜单........................35
2.3.2 Edit (编辑).................................39
2.3.3
Assets (资源).............................48
2.3.4
GameObject (游戏对象/ 物体)....58
2.3.5
Component (组件)......................64
2.3.6
Terrain (地形)............................68
2.3.7
Window (窗口)..........................72
2.3.8
Help (帮助)................................73
2.4
Project(项目)视图................................73
2.4.1
视图简介......................................73
2.4.2
视图操作.....................................74
2.5
Hierarchy(层级)视图...........................76
2.5.1
视图简介......................................76
2.5.2
视图操作......................................77
2.6
Inspector(检视)视图...........................77
2.6.1
视图简介......................................77
2.6.2
基本属性......................................78
2.7
Game(游戏)视图..................................80
2.7.1
视图简介......................................80
2.7.2
视图控制......................................80
Unity 4.X 从入门到精通
2.8
Scene(场景)视图.................................. 81
2.8.1
视图简介......................................81
2.8.2
视图控制......................................83
2.9
Pro.ler(分析器)视图...........................85
2.10
Console(控制台)视图.......................86
2.11
界面定制......................................................87
2.11.1
Unity 编辑器布局设置介绍......87
2.11.2
Unity 编辑界面色彩设置介绍....88
第3 章 资源导入流程...................... 89
3.1
3D 模型、材质与动画的导入...............90
3.1.1
主流三维软件简介......................90
3.1.2
模型、材质以及动画导入前的设置、准备工作..................94
3.1.3
将模型、材质、动画导入到Unity 中.................................107
3.2
图片资源的导入........................................119
3.2.1
Unity 所支持的图片格式以及尺寸要求............................120
3.2.2
图片资源导入后的设置............120
3.2.3
图片资源类型的设定................123
3.3
音频、视频的导入..................................128
3.3.1
Unity 支持的音频、视频格式....128
3.3.2
音频资源的导入........................129
3.3.3
视频资源的导入........................131
3.4
创建Prefab ................................................. 132
3.4.1
Prefab 的概念............................132
3.4.2
Prefab 的创建以及相关操作说明....................................133
3.4.3
Prefab 的应用案例....................136
3.5
Unity Asset Store 资源商店.................. 141
3.5.1
Asset Store 简介........................141
3.5.2
Asset Store 的使用方法............142
第4 章 创建基本游戏场景............. 147
4.1
创建工程和游戏场景.............................148
4.2
创建基本几何体.......................................150
4.2.1
基本几何体简介........................151
4.2.2
创建基本几何体........................151
4.3
创建组件..................................................... 152
4.3.1
组件的含义及其作用................152
4.3.2
如何添加组件............................153
4.3.3
组件类型介绍............................155
4.3.4
为游戏对象增加组件................160
4.4
创建脚本.....................................................167
4.4.1
Unity 支持的脚本类型..............167
4.4.2
创建脚本的方式........................168
4.4.3
脚本资源包概述........................170
4.4.4
自定义新建脚本的模板内容....174
4.5
创建光源.....................................................176
4.5.1
Unity 的光源类型......................176
4.5.2
光源属性讲解............................177
4.5.3
光源场景案例............................182
4.6
创建摄像机................................................185
4.6.1
摄像机类型................................186
4.6.2
摄影机参数................................187
4.6.3
摄影机案例................................189
4.7
地形编辑器................................................192
4.7.1
地形编辑器概述........................192
4.7.2
地形的创建方式以及相关参数设定............................193
4.7.3
地形编辑器参数讲解案例........206
4.8
创建角色..................................................... 217
4.8.1
角色控制资源包概述................217
4.8.2
在场景中使用角色控制预设体................................218
4.9
粒子系统.....................................................221
4.9.1
粒子系统简介............................221
4.9.2
粒子资源包的概述....................222
4.9.3
粒子系统参数讲解....................223
4.10
天空盒........................................................234
4.10.1
天空盒资源包的概述..............235
4.10.2
天空盒的两种应用方式及其区别..........................239
4.10.3
创建天空盒的方法..................242
目录
4.11
雾效............................................................. 246
4.11.1
雾效的添加方法......................246
4.11.2
雾效的参数讲解......................246
4.12
水效果........................................................ 247
4.12.1
水资源包的概述......................247
4.12.2
水效果的创建实例..................252
4.13
音效............................................................ 254
4.13.1 添加音效..................................254
4.13.2 音效设置..................................259
第5 章 Shuriken 粒子系统............ 261
5.1
Shuriken 粒子系统概述.........................262
5.2
Shuriken 粒子系统的控制面板..........263
5.3
Shuriken 粒子系统的参数讲解..........267
5.4
粒子系统案例........................................... 295
第6 章 Mecanim 动画系统............ 305
6.1
Mecanim 概述........................................... 306
6.1.1
Mecanim 工作流........................306
6.1.2
旧版动画系统............................307
6.2 资源的准备和导入..................................307
6.2.1
如何获取人形网格模型............307
6.2.2
如何导入动画............................308
6.2.3 动画分解....................................309
6.3 使用人形角色动画.................................. 310
6.3.1
创建Avatar ................................311
6.3.2
配置Avatar ................................312
6.3.3
设置Muscle 参数......................313
6.3.4
Avatar Body Mask......................315
6.3.5
人形动画的重定向....................316
6.3.6
逆向运动学功能(Pro only)....319
6.3.7
一般动画....................................321
6.4
在游戏中使用角色动画........................321
6.4.1
循环动画片段............................322
6.4.2
Animator 组件...........................322
6.4.3
Animator Controller ...................323
6.4.4
动画状态机................................323
6.4.5
混合树........................................327
6.4.6
1D 混合......................................327
6.4.7
2D 混合......................................328
6.5 案例分析.....................................................329
第7 章 物理引擎............................ 339
7.1
Rigidbody :刚体...................................... 340
7.2
Colliders :碰撞体.................................... 342
7.2.1
碰撞体型介绍............................343
7.2.2
碰撞体相关的知识点介绍........347
7.3
Character Controller :角色控制器...... 349
7.4
布料................................................................351
7.4.1
Interactive Cloth :交互布料.....351
7.4.2
Skinned Cloth :蒙皮布料.........353
7.4.3
Cloth Renderer :布料渲染器....355
7.5
关节................................................................356
7.5.1
Hinge Joint :铰链关节.............356
7.5.2
Fixed Joint :固定关节..............358
7.5.3
Spring Joint :弹簧关节............359
7.5.4
Character Joint :角色关节.......361
7.5.5
Con.gurable Joint :可配置关节............................................363
7.6
力场............................................................... 368
7.7
物理引擎实例............................................369
第8 章 光照贴图技术.................... 387
8.1
概述.............................................................. 388
8.2
烘焙Lightmap 的简单示例................ 388
8.3
烘焙相关的参数详解.............................391
8.4
三种Lightmapping 方式的比较....... 396
8.5
Light Probes................................................399
8.5.1
Light Probes 概述......................399
8.5.2
Light Probes 使用示例..............399
8.5.3
Light Probes 应用细节..............402
第9 章 导航网格寻路.................... 405
9.1 概述.............................................................. 406
Unity 4.X 从入门到精通
9.2
导航网格寻路系统简单示例............. 406
9.3
导航网格寻路系统相关参数详解......411
9.4
进阶使用..................................................... 413
9.4.1
使用Off-Mesh Link 组件..........413
9.4.2
为网格分层................................415
9.4.3
动态更改可行进层....................417
9.4.4
使用Navmesh Obstacle 组件....418
第10 章 遮挡剔除技术.................. 421
10.1
概述............................................................ 422
10.2
使用遮挡剔除........................................ 422
10.3
设置烘焙参数........................................ 424
10.4
使用Occlusion Area 组件.................. 425
10.5
使用Occlusion Portals 组件..............426
第11 章 后期屏幕渲染特效........... 427
11.1
后期屏幕渲染特效的作用.................. 428
11.2
后期屏幕渲染特效资源包概述....... 428
11.3
后期屏幕渲染特效参数详解及效果展示.............................................. 430
11.4
后期屏幕渲染特效展示...................... 450
开 发 篇
第12 章 游戏开发基础知识........... 459
12.1
3D 数学基础知识.................................. 460
12.1.1
向量..........................................460
12.1.2
矩阵..........................................465
12.1.3 齐次坐标..................................466
12.2
四元数....................................................... 466
12.3
渲染管线...................................................472
12.4
常见游戏类型..........................................473
12.4.1 按游戏方式分类......................473
12.4.2 按游戏运行平台划分..............481
第13 章 Unity 脚本开发基础......... 483
13.1
脚本介绍................................................... 484
13.2
Unity 脚本语言...................................... 485
13.3
Javascript 基本语法.............................. 485
13.3.1
变量..........................................486
13.3.2
数组..........................................486
13.3.3
运算、比较、逻辑操作符......488
13.3.4
语句..........................................489
13.3.5
函数..........................................491
13.3.6
JavaScript 脚本........................492
13.4
C# 基本语法.............................................493
13.4.1
变量..........................................493
13.4.2
数组..........................................493
13.4.3
运算、比较、逻辑操作符......495
13.4.4
语句..........................................495
13.4.5
函数..........................................495
13.4.6
C# 脚本...................................497
13.5
Boo 基本语法......................................... 498
13.5.1
变量..........................................498
13.5.2
数组..........................................499
13.5.3
运算、比较、逻辑操作符......499
13.5.4
语句..........................................499
13.5.5
函数..........................................503
13.5.6
Boo 脚本..................................504
13.6
创建脚本.................................................. 504
13.6.1
MonoDevelop 编辑器..............505
13.6.2
脚本必然事件(Certain Event)......................................506
13.6.3
MonoBehaviour 类...................508
13.6.4
访问组件..................................509
13.6.5
访问游戏对象..........................511
13.7
常用脚本API.............................................512
13.7.1
Transform 组件........................512
13.7.2
Time 类....................................514
13.7.3
Random 类...............................514
13.7.4
Mathf 类...................................515
13.7.5
Coroutine 协同程序.................515
第14 章 输入与控制...................... 519
14.1 Input 类方法和变量..............................520
14.2 鼠标输入...................................................521
14.3 键盘输入...................................................523
14.4 游戏外设输入..........................................525
14.5 移动设备输入.........................................526
14.6 自定义输入..............................................528
第15 章 GUI 开发......................... 529
15.1 Unity GUI 介绍.........................................530
15.2 GUI 控件.....................................................530
15.2.1 Label 控件................................532
15.2.2 Box 控件..................................533
15.2.3 Button 控件..............................534
15.2.4 RepeatButton 控件...................535
15.2.5 TextField 控件..........................536
15.2.6 PasswordField 控件.................537
15.2.7 TextArea 控件..........................538
15.2.8 Toggle 控件..............................539
15.2.9 ToolBar 控件............................540
15.2.10 Slider 控件.............................541
15.2.11 Scrollbar 控件........................542
15.2.12 ScrollView 控件.....................543
15.2.13 Window 窗口.........................545
15.3 GUISkin 控件样式................................. 546
15.4 GUILayout 自动布局............................ 548
15.4.1 区域Area .................................549
15.4.2 水平组和垂直组......................550
15.4.3 GUILayout 参数......................551
15.5 GUI 应用实例...........................................552
第16 章 Shader 开发.................... 565
16.1 内建Shader 介绍.................................. 566
16.2 Unity 里的三种自定义Shader..........569
16.3 创建Shader..............................................570
16.4 ShaderLab 基础语法.............................571
目录
16.4.1 Properties 属性.........................572
16.4.2 SubShader 子着色器视图.......574
16.4.3 Pass...........................................574
16.4.4 备用着色器Fallback ...............575
16.4.5 Category 分类..........................576
16.5 固定功能管线着色器(Fixed Function Shaders)..................................576
16.6 表面着色器(Surface Shaders).......577
16.7 顶点片段着色器
(Vertex And Fragment Shaders)..... 582
第17 章 开发进阶.......................... 587
17.1 Batching 技术.......................................... 588
17.1.1 Draw Call Batching 使用与限制..........................................588
17.1.2 Static Batching (静态批处理)........................................589
17.1.3 Dynamic Batching (动态批处理)........................................589
17.2 基于Unity 的网络解决方案..............590
17.2.1 授权服务器..............................590
17.2.2 非授权服务器..........................591
17.2.3 Network View (网络视图组件)........................................592
17.3 多人网络游戏案例................................593
17.4 编辑器扩展...............................................635
17.4.1 编辑器脚本介绍......................636
17.4.2 创建编辑器窗口......................636
17.4.3 自定义Inspector 视图.............638
17.4.4 自定义场景视图......................639
17.4.5 第三方编辑器插件..................640
第18 章 工作流程.......................... 641
18.1 AssetBundle ............................................. 643
18.1.1 BuildPipeline.BuildAsset-Bundle ......................................643
18.1.2 BuildPipeline.BuildStreamed-SceneAssetBundle....................644
Unity 4.X 从入门到精通
18.1.3
BuildPipeline.BuildAsset-BundleExplicitAssetNames......644
18.1.4
BuildAssetBundleOptions 选项..........................................644
18.1.5
如何创建AssetBundle 之间的依赖..............................645
18.2
如何下载AssetBundle ........................ 646
18.3
AssetBundle 的加载与卸载............... 647
18.3.1
如何加载AssetBundle ............647
18.3.2
如何从AssetBundle 中加载Assets ..........................649
18.3.3
如何从场景AssetBundle 中加载Assets ..........................650
18.3.4
如何卸载AssetBundle ............651
18.4
AssetBundle 的内存管理.....................651
18.4.1
下载和加载AssetBundle 时对内存的影响......................652
18.4.2
AssetBundle 以及Asset 的卸载..........................................653
18.5
WWW 、AssetBundle 及Asset 的关系.............................................................653
第19 章 脚本调试与优化............... 655
19.1
脚本调试................................................... 656
19.2
Pro.ler.........................................................661
19.2.1
Pro.ler 的使用........................661
19.2.2
IOS 设备启用远程分析..........671
19.2.3
Android 设备的远程分析.......672
19.3
优化建议...................................................672
19.3.1
各个平台通用的优化方案......672
19.3.2
移动设备的优化......................674
第20 章 跨平台发布...................... 677
20.1 发布到网页平台.................................... 678
20.1.1 如何将项目发布到Web..........678
20.1.2
自定义Unity Web Player 的屏幕加载..................................685
20.1.3
自定义Unity Web Player 的行为..........................................688
20.1.4
JavaScript 与Unity 的通信.....689
20.2
发布到Android 平台...........................690
20.2.1
Java SDK 的环境配置.............690
20.2.2
Android SDK 的安装与项目发布..................................691
20.3
iOS 平台的发布......................................696
20.3.1
发布前的准备工作..................697
20.3.2
发布iOS 平台的设置..............698
20.3.3
项目工程输出与发布..............702
第21 章 经典案例分析之Angrybots........................ 703
21.1
资源准备................................................... 704
21.1.1
静态3D 资源(无动画)导出..........................................704
21.1.2
动态3D 资源导出...................706
21.2
导入资源到项目工程.......................... 708
21.3
角色分析................................................... 709
21.4
自定义复活位置..................................... 712
21.5
角色射击.................................................... 715
21.6
碰撞检测.................................................... 717
21.7
自定义路径曲线..................................... 718
21.8
降雨效果....................................................720
21.9
静态批处理...............................................723
21.10
相机屏幕的后处理特效.....................724
21.10.1
地面反射特效........................724
21.10.2
Bloom 特效............................725
21.10.3
景深特效(Depth of Field)....725
21.10.4
色彩噪声特效........................725
21.11
Pro.le 游戏分析器................................726 -
作者介绍
主要著译者顺序姓名学历职称学科专长通讯地址1 工作单位 邮政编码 电话 2 工作单位 邮政编码 电话 3 工作单位 邮政编码 电话 审校者(主审者) 学历 工作单位 邮政编码 电话 职称 工作单位 邮政编码 电话 优美缔软件(上海)有限公司:国际领先的三维游戏引擎开发商,掌握Unity 3d游戏引擎技术。2013年在大陆、香港地区、台湾地区、澳门地区同时举办了Unity首届游戏创意设计大赛。目前,利用Unity游戏引擎开发的游戏涉及的终端有手机、平板和台式机等。有多个高校都购买了Unity软件,并在高校的课程中开始讲授。 -
编辑推荐
1.本书是官方权威发布的图书;2.本书内容涵盖Unity 国际认证考试的相关内容;3.本书调理清晰、通俗易懂。 -
书评书荐
-
附件下载
图书推荐