书籍详情
Unity 2017 从入门到精通
作者:Unity公司 著
出版社:人民邮电出版社
出版时间:2020-06-01
ISBN:9787115535177
定价:¥198.00
购买这本书可以去
内容简介
Unity是在游戏开发和虚拟现实开发方面应用得非常广泛的软件,其功能强大,用户体验很友好,全世界已经有近千万注册用户。本书共分为28章,主要介绍Unity 2017的安装和使用方法,以循序渐进的方式详细讲解Unity操作界面、Timeline、资源导入流程、场景创建、粒子系统、Mecanim动画系统、物理引擎、地形系统、脚本语言开发、Shader开发、脚本调试优化与内存管理、跨平台发布等内容。书中每章都安排了有针对性的项目实例,可以帮助读者轻松掌握软件的使用技巧。为了方便读者学习,本书还附赠相关的Unity工程源文件以帮助读者快速掌握Unity开发技术,并在最后一章详细介绍了Unity 2018版本的新特性。 本书面向广大Unity 初学者,以及有志于从事Unity开发工作的人员,同时也适合高等院校相关专业的学生和各类培训班的学员阅读参考。
作者简介
刘向群, Unity 官方认证价值专家(UVP)、Unity UUG 福州负 责人、工业与信息化部 VR 认证讲师。毕业于西安通信学院 ,计算机应用专业。拥有十多年 VR/AR 从业经验,曾参与《网上世博会》《数字奥运》《网 易 3D 家具》等 VR 项目实施。北京犀牛数字互动科技 有限公司创始人,中国虚拟现实产业联盟理事,中国 虚拟现实与可视化联盟理事,中国计算机学会 AC 学术 委员。组织并参与出版书籍:《VR/AR/MR 开发实战》《虚拟现实:从梦想到现实》《Unity 4.X 从入门到精通》 《Unity 5.X 从入门到精通》。 吴彬, 毕业于西安欧亚学院 ,计算机信息管 理专业。2004 年起专注于虚拟现实领域,资深虚拟现 实从业人员。《Unity 4.X 从入门到精通》《Unity 5.X 从入门到精通》的作者之一。精通 3ds MAX、Maya、 Unity 等 3D 软件。具有极其深厚的 VR 技术功底,开 发过《数字奥运》 《第三星球》等多个大型虚拟现实 项目。
目录
第 1章 Unity介绍
1.1 Unity简介 1
1.2 Unity的历史 2
1.3 Unity 2017中的重要特性 3
1.3.1 业界领先的多平台支持 3
1.3.2 VR/AR首选开发工具 4
1.3.3 Cinemachine摄像机系统 4
1.3.4 Timeline可视化工具 4
1.3.5 数字内容创建工具的工作流程改进对FBX的支持 5
1.3.6 Post-processing栈改进 5
1.3.7 粒子系统改进 5
1.3.8 全景360°/180°视频 5
1.3.9 更新版的Crunch库 5
1.3.10 光照改进 5
1.3.11 通过VR设备状态事件获得信息 6
1.3.12 轻松发布Android应用到中国小米平台 6
1.4 Unity开发案例介绍 6
1.4.1 Unity手机游戏开发案例 6
1.4.2 Unity严肃游戏开发案例 7
第 2章 Unity安装与购买
2.1 Unity安装 10
2.1.1 实践操作01:在Windows操作系统下的安装 10
2.1.2 实践操作02:在macOS下的安装 12
2.2 购买许可证 14
实践操作03:在线购买Unity Plus加强版 15
第3章 Unity编辑器
3.1 实践操作04:工程的创建 16
3.2 界面布局 16
3.2.1 导航窗口 16
3.2.2 界面布局 17
3.2.3 界面定制 18
3.3 工具栏 18
3.3.1 Transform Tools(变换工具) 18
3.3.2 Transform Gizmo Tools(变换辅助工具) 21
3.3.3 Play(播放控制) 21
3.3.4 Layers(分层下拉列表) 21
3.3.5 Layout(布局下拉列表) 21
3.4 菜单栏 21
3.4.1 File(文件)菜单 21
3.4.2 Edit(编辑)菜单 22
3.4.3 Assets(资源)菜单 23
3.4.4 GameObject(游戏对象)菜单 24
3.4.5 Component(组件)菜单 25
3.4.6 Window(窗口)菜单 26
3.4.7 Help(帮助)菜单 27
3.5 常用工作视图 28
3.5.1 Project(项目)视图 28
3.5.2 Scene(场景)视图 30
3.5.3 Game(游戏)视图 31
3.5.4 Inspector(检视)视图 32
3.5.5 Hierarchy(层级)视图 33
3.5.6 Console(控制台)视图 34
第4章 游戏对象、组件和Prefabs
4.1 实践操作05:创建游戏对象和组件 35
4.2 常用游戏对象 37
4.2.1 实践操作06:内置的几何体和空对象 37
4.2.2 Camera相机 38
4.2.3 Light(灯光) 39
4.2.4 UGUI 40
4.3 常用组件 40
4.3.1 Transform组件 40
4.3.2 Mesh组件 40
4.3.3 Physics组件 40
4.3.4 Particle System组件 41
4.3.5 Audio组件 41
4.3.6 Scripts组件 41
4.4 Prefabs(预设体) 41
4.4.1 实践操作07:创建Prefabs 41
4.4.2 实例化Prefabs 43
4.4.3 实践操作08:修改Prefabs 43
第5章 创建基本的3D游戏场景
5.1 实践操作09:创建3D游戏场景 46
5.2 地形 47
5.2.1 实践操作10:编辑地形 47
5.2.2 实践操作11:添加树木和植被 51
5.2.3 实践操作12:添加水效果 53
5.2.4 地形设置参数详解 54
5.3 实践操作13:光源和阴影 56
5.4 角色控制 58
5.4.1 实践操作14:创建第 一人称控制器 58
5.4.2 实践操作15:创建第三人称控制器 59
5.5 静态景物 61
5.5.1 实践操作16:导入外部物体 61
5.5.2 实践操作17:创建物理阻挡 62
5.6 环境和音效 63
5.6.1 实践操作18:添加天空盒 63
5.6.2 实践操作19:添加雾效 64
5.6.3 实践操作20:添加音效 65
第6章 创建基本的2D游戏场景
6.1 实践操作21:创建2D游戏场景 67
6.2 实践操作22:创建工作层 68
6.3 导入图片资源 68
6.4 创建Tilemap 69
实践操作23:创建Tilemaps 70
6.5 创建静态场景 71
6.5.1 创建静态景物 71
实践操作24:创建背景层 71
实践操作25:创建前景层 74
6.5.2 层级排序 76
6.5.3 Outline Editor功能 76
6.5.4 2D的九宫格技术 77
6.6 实践操作26:创建灯光 79
6.7 实践操作27:2D角色控制 81
6.8 2D游戏场景案例 83
第7章 资源的导入与导出流程
7.1 资源导入 85
7.1.1 外部资源场景工具介绍 85
7.1.2 Unity导入外部资源的方法 86
7.1.3 实践操作28:3D模型、材质的导入 87
7.1.4 图片资源的导入 92
7.1.5 3D动画的导入 99
7.1.6 音频资源的导入 99
7.1.7 视频资源的导入 101
7.2 资源包(unitypackage)的使用 103
7.2.1 资源包的导入 104
7.2.2 实践操作29:资源包的导出 104
7.3 Asset Store的介绍和使用 105
7.3.1 Asset Store简介 105
7.3.2 实践操作30:Asset Store的使用 106
第8章 3D数学基础
8.1 3D坐标系 107
8.1.1 全局坐标系 107
8.1.2 局部坐标系 108
8.1.3 相机坐标系 109
8.1.4 屏幕坐标系 109
8.2 向量 109
8.2.1 向量的运算 109
8.2.2 Vector3类 110
实践操作31:计算两物体间的距离 111
实践操作32:缓动效果 112
8.3 矩阵 113
8.4 齐次坐标 113
8.5 四元数 114
实践操作33:通过四元数控制对象旋转 116
8.6 坐标转换原理 117
8.6.1 世界坐标与局部坐标的转换 117
实践操作34:改变全局和局部坐标 117
8.6.2 世界坐标与屏幕坐标的转换 119
实践操作35:设置世界坐标 119
第9章 Unity脚本语言
9.1 Unity脚本语言 122
9.2 创建并运行脚本 122
9.2.1 实践操作36:创建脚本 122
9.2.2 MonoDevelop编辑器 123
9.2.3 必然事件 124
实践操作37:使用必然事件 124
9.3 C#基本语法 126
9.3.1 变量和常量 126
9.3.2 运算符和表达式 126
9.3.3 语句和函数 128
实践操作38:使用语句 128
9.3.4 访问修饰符 131
9.3.5 数组、链表和字典 132
实践操作39:使用数组 132
实践操作40:使用链表 134
9.3.6 代码注释 138
9.3.7 C#脚本 139
9.4 访问游戏对象和组件 140
9.4.1 MonoBehaviour 类 140
9.4.2 访问游戏对象 140
9.4.3 访问组件 141
实践操作41:访问组件或游戏对象 143
9.5 常用脚本API 144
9.5.1 Transform类 144
实践操作42:使用Transform组件控制游戏对象 145
9.5.2 Time类 146
9.5.3 Random类 147
9.5.4 Mathf类 147
实践操作43:使用Mathf.SmoothDamp函数
制作相机的缓冲跟踪效果 148
9.5.5 Coroutine协同程序 149
实践操作44:使用协同程序 150
9.6 脚本生命周期 151
第 10章 信息输入管理
10.1 Input Manager 153
10.2 鼠标输入 155
实践操作45:鼠标输入的操作 155
10.3 键盘输入 157
实践操作46:键盘输入的操作 158
10.4 游戏外设输入 159
实践操作47:游戏外设输入的操作 159
10.5 移动设备输入 160
实践操作48:移动设备输入的操作 161
10.6 自定义输入 164
第 11章 物理系统
11.1 概述 166
11.2 物理系统相关组件 166
11.2.1 刚体组件 167
11.2.2 角色控制器 168
11.2.3 碰撞体组件 169
11.2.4 物理材质 173
11.2.5 布料组件 174
11.2.6 关节组件 179
11.2.7 力场组件 185
11.3 可视化物理调试 185
第 12章 粒子系统
12.1 什么是粒子系统 188
12.2 在Unity中使用粒子系统 189
12.3 高级应用技巧 191
实践操作49:学习使用标准资源包里的粒子特效 191
实践操作50:控制爆炸粒子 191
实践操作51:控制粒子的大小 193
12.4 参数详解 196
第 13章 动画系统
13.1 概述 212
13.2 Unity动画相关组件 213
13.2.1 Animator和Animator Controller 213
13.2.2 Animation动画编辑器 221
13.3 外部动画资源的准备和导入 223
13.3.1 获取人形网格模型 223
13.3.2 导入动画 224
13.3.3 动画分解 224
13.3.4 循环播放动画片段 225
13.4 人形角色动画 226
13.4.1 创建Avatar 226
13.4.2 配置Avatar 226
13.4.3 设置Muscle参数 228
13.4.4 Avatar Mask 228
13.4.5 人形动画的重定向 229
实践操作52:将第三人称控制动画重定向到其他角色 229
13.4.6 逆向运动学功能 231
实践操作53:逆向运动学应用 231
13.5 动画混合 233
13.5.1 混合树 233
13.5.2 1D混合 234
13.5.3 2D混合 236
13.5.4 直接混合 238
第 14章 Timeline
14.1 Timeline概述 239
14.2 Timeline工作流程 242
14.2.1 创建Timeline资源和Timeline实例 242
14.2.2 用无限剪辑录制基本动画 243
14.2.3 将无限剪辑转换为动画片段 246
14.2.4 创建人形动画 246
14.3 Timeline编辑窗口 249
14.3.1 Timeline预览和Timeline选择器 251
14.3.2 Timeline播放控件 251
14.3.3 轨道列表 252
14.3.4 剪辑视图 257
14.3.5 曲线视图 264
14.3.6 Timeline设置 268
14.4 Playable Director组件 269
14.5 Cinemachine Camera 系统 270
14.5.1 下载并导入资源包 270
14.5.2 Cinemachine Camera主要的组件 271
实践操作54:使用Cinemachine Camera 271
14.6 综合案例:Timeline
和Cinemachine Camera的综合使用 274
第 15章 UGUI
15.1 概述 280
15.2 UGUI之Canvas画布 280
15.2.1 Canvas 280
15.2.2 Canvas Group 281
15.2.3 元素绘制顺序 281
15.3 UGUI之EventSystem对象 282
15.3.1 Event System组件 282
15.3.2 Standalone Input Module组件 282
15.4 UGUI之基本布局 283
15.4.1 矩形工具 283
15.4.2 Rect Transform矩形变换 283
15.4.3 Anchors锚点 284
15.4.4 Pivot轴心点 285
15.4.5 补充 285
15.5 UGUI之Text文本 285
15.5.1 Text介绍 285
15.5.2 Rich Text富文本 286
15.6 UGUI之Image图像 286
15.7 UGUI之Raw Image原始图像 287
15.8 UGUI之Mask遮罩 288
15.9 UGUI之过渡选项和导航选项 288
15.9.1 Transition过渡选项 288
15.9.2 Navigation导航选项 289
15.10 UGUI之Button按钮 290
15.10.1 Button介绍 290
15.10.2 实践操作55:Button单击事件绑定 291
15.11 UGUI之Toggle开关 294
15.11.1 Toggle介绍 294
15.11.2 实践操作56:Toggle事件绑定 295
15.12 UGUI之Slider滑动条 295
15.12.1 Slider介绍 295
15.12.2 实践操作57:Slider事件绑定 296
15.13 UGUI之Scrollbar滚动条 297
15.13.1 Scrollbar介绍 297
15.13.2 Scrollbar事件绑定 298
15.14 UGUI之Dropdown下拉列表 298
15.14.1 Dropdown介绍 298
15.14.2 Dropdown事件绑定 300
15.14.3 实践操作58:Dropdown其他操作 300
15.15 UGUI之Input Field输入栏 301
15.15.1 Input Field介绍 301
15.15.2 Input Field事件绑定 302
15.16 UGUI之Scroll View滚动视图 302
15.16.1 Scroll View介绍 302
15.16.2 Scroll View事件绑定 303
15.17 UGUI之自动布局组件 303
15.17.1 Layout Element布局元素 303
15.17.2 Content Size Fitter内容尺寸裁切 304
15.17.3 Aspect Ratio Fitter长宽比例裁切 304
15.17.4 Horizontal Layout Group水平布局组 305
15.17.5 Vertical Layout Group垂直布局组 305
15.17.6 Grid Layout Group网格布局组 306
第 16章 音效和视频
16.1 音效系统 307
16.1.1 概述 307
16.1.2 常用组件 308
16.1.3 Audio Mixer音频混合 310
16.1.4 Audio Filters音频过滤 321
16.1.5 Audio Effects音频效果 325
16.1.6 Microphone麦克风 325
16.2 视频播放器 326
16.2.1 概述 326
16.2.2 Video Player组件 327
16.2.3 视频剪辑 328
16.2.4 视频透明度支持 328
16.2.5 全景视频 329
实践操作59:全景视频之海上冲浪 329
第 17章 全局光照
17.1 概述 333
17.1.1 Enlighten 333
17.1.2 Progressive Lightmapper 333
17.1.3 Lightmap seam stitching 334
17.2 实践操作60:烘焙光照用法示例 335
17.3 系统参数详解 338
17.3.1 FBX模型导入设置 338
17.3.2 Reflection Probe反射探针 338
17.3.3 Light Probe Group光照探针组件 341
17.3.4 Lighting 窗口 341
17.3.5 Light Explorer光探测器 345
第 18章 导航网格寻路
18.1 Unity的导航寻路系统 346
18.2 实践操作61:创建一个导航网格 347
18.3 系统参数详解 351
18.3.1 Navigation窗口 351
18.3.2 Nav Mesh Agent 352
18.3.3 Off Mesh Link 353
18.3.4 Nav Mesh Obstacle 353
18.4 综合案例:导航网格寻路的高级技巧 354
18.4.1 使用Off Mesh Link组件 354
18.4.2 为网格分层 355
18.4.3 动态更改可行进层 356
18.4.4 使用Nav Mesh Obstacle组件 358
第 19章 遮挡剔除
19.1 概述 359
19.2 参数详解 360
19.2.1 Occlusion窗口 360
19.2.2 Occlusion Area组件 362
19.2.3 Occlusion Portal组件 363
19.3 综合案例:遮挡剔除的使用 363
第 20章 后期屏幕渲染特效
20.1 概述 365
20.2 参数详解 367
20.2.1 Fog(雾效) 367
20.2.2 Anti-aliasing(抗锯齿) 368
20.2.3 Ambient Occlusion(环境光遮罩) 369
20.2.4 Screen Space Reflection(屏幕空间反射) 370
20.2.5 Depth of Field(景深) 371
20.2.6 Motion Blur(运动模糊) 372
20.2.7 Eye Adaptation(眼部适应) 373
20.2.8 Bloom(泛光) 374
20.2.9 Color Grading(颜色分级) 375
20.2.10 User Lut 378
20.2.11 Chromatic Aberration(色差) 379
20.2.12 Grain(颗粒) 379
20.2.13 Vignette(渐晕) 380
20.2.14 Dithering(抖动) 381
20.2.15 Debug Views(调试视图) 381
20.2.16 Monitors(监视器) 384
第 21章 Shader开发
21.1 Shader概述 386
21.2 内建Shader介绍 387
21.2.1 内建着色器 387
实践操作62:使用内建着色器 388
21.2.2 内建标准着色器 389
实践操作63:使用标准着色器 392
21.3 Shader的创建 393
21.4 ShaderLab基础语法 394
21.4.1 Properties属性 396
21.4.2 SubShader子着色器视图 398
21.4.3 Fallback备用着色器 399
21.4.4 Category(分类) 399
21.5 自定义Shader 400
21.5.1 Fixed Function Shaders(固定功能管线着色器) 400
21.5.2 Surface Shaders(表面着色器) 401
21.5.3 Vertex and Fragment Shaders(顶点片段着色器) 402
21.6 综合案例:着色器编写实例 404
21.6.1 表面着色器 404
21.6.2 顶点片段着色器 406
第 22章 AssetBundle工作流程
22.1 AssetBundle的创建 409
22.1.1 AssetBundle的UI 409
22.1.2 BuildPipeline BuildAsset-Bundles 410
实践操作64:AssetBundle的创建 411
22.1.3 Unity处理Assets之间的依赖 412
22.2 AssetBundle的下载 414
22.3 AssetBundle的加载和卸载 415
22.3.1 加载AssetBundle 415
22.3.2 从AssetBundle中加载Assets 417
22.3.3 AssetBundle Variant的使用 418
22.3.4 卸载AssetBundle 419
22.4 AssetBundle的内存管理 419
22.4.1 下载和加载AssetBundle时内存的影响 419
22.4.2 AssetBundle及Asset的卸载 420
22.5 AssetBundle工具 420
22.5.1 Configure的使用 421
22.5.2 Build的使用 423
第 23章 多人游戏和联网
23.1 授权服务器 425
23.2 非授权服务器 426
23.3 Hight Level API 426
23.4 Transport Layer API 427
23.5 Unity的多人游戏 429
23.5.1 集成多人游戏服务 430
实践操作65:使用HUD进行集成 430
23.5.2 使用Hight Level API进行集成 432
23.5.3 使用NetworkTransport进行集成 432
23.6 Unity网络组件介绍 439
23.6.1 Network Animator 439
23.6.2 Network Discovery 439
23.6.3 Network Identity 440
23.6.4 Network Lobby Manager 441
23.6.5 Network Lobby Player 442
23.6.6 Network Manager 443
23.6.7 Network Manager HUD 445
23.6.8 Network Proximity Checker 446
23.6.9 Network Start Position 446
23.6.10 Network Transform 446
23.6.11 Network Transform Child 447
23.6.12 Network Transform Visualizer 448
23.7 Unity的网络请求 449
23.7.1 常用操作:使用HLAPI 449
23.7.2 高级操作:使用LLAPI 453
23.8 综合案例:多人游戏实战 461
23.9 Unity服务 466
23.9.1 相关资源 466
23.9.2 Unity Ads广告 467
23.9.3 Unity Game Analytics游戏分析 467
23.9.4 Everyplay视频录制 468
23.9.5 Unity Cloud Build云构建 469
23.9.6 Unity Collaborate协同服务 469
第 24章 编辑器扩展
24.1 编辑器脚本 470
24.2 实践操作66:创建编辑器窗口 470
24.3 自定义Inspector视图 473
24.4 实践操作67:自定义Scene视图 474
24.5 第三方编辑器插件 475
第 25章 脚本调试与优化
25.1 实践操作68:脚本调试 476
25.2 Profiler性能分析器 478
25.2.1 Profiler的使用 478
25.2.2 iOS设备启用远程分析 481
25.2.3 Android设备启用远程分析 482
25.3 Log Files 482
25.4 脚本优化 484
25.4.1 各个平台通用的优化方案 484
25.4.2 移动设备的优化 485
第 26章 跨平台发布
26.1 Windows平台发布 487
26.1.1 实践操作69:Windows平台发布步骤 487
26.1.2 Player Settings参数详解 487
26.2 Android平台发布 493
26.2.1 实践操作70:Java SDK的环境配置 493
26.2.2 Android SDK的安装 494
26.2.3 实践操作71:Android平台发布步骤 494
26.2.4 Player Settings参数详解 495
26.3 iOS平台发布 500
26.3.1 实践操作72:iOS平台发布前的准备工作 500
26.3.2 实践操作73:项目工程的输出和发布 501
26.3.3 Player Settings参数详解 502
26.4 WebGL平台发布 506
26.4.1 实践操作74:WebGL平台发布步骤 506
26.4.2 Player Settings参数详解 507
26.5 Facebook平台发布 510
26.5.1 实践操作75:Facebook平台发布步骤 510
26.5.2 Player Settings参数详解 511
第 27章 案例分析之Tanks
27.1 案例工程文件下载 512
27.2 场景设置 513
27.2.1 场景碰撞区域设置 513
27.2.2 坦克初始位置 514
27.3 游戏控制 514
27.4 后期屏幕渲染特效 515
27.4.1 Bloom 515
27.4.2 Color Grading 515
27.4.3 Chromatic Aberration 516
27.4.4 Vignette 516
27.5 静态批处理 516
27.6 游戏管理 517
27.6.1 游戏参数设置 517
27.6.2 游戏流程控制逻辑 518
27.7 坦克控制 521
27.7.1 坦克运动控制的实现 521
27.7.2 坦克血条的实现 524
27.7.3 坦克射击的实现 526
27.8 相机控制 530
第 28章 Unity 2018新特性
28.1 项目模板功能 533
28.1.1 3D附带额外设置 534
28.1.2 高清晰渲染管线 534
28.1.3 轻量级渲染管线 535
28.1.4 轻量级VR渲染管线 535
28.2 Package Manager 536
实践操作76:Package Manager的相关操作 537
28.3 着色器视图Shader Graph 538
28.3.1 安装Shader Graph 539
实践操作77:安装Shader Graph 539
28.3.2 Shader Graph功能介绍 540
28.4 可编程渲染管线SRP 540
28.4.1 SRP批处理器加速CPU渲染 541
28.4.2 可编程着色器变体移除 541
28.4.3 轻量级渲染管线(预览版) 541
28.4.4 高清晰渲染管线(预览版) 542
28.5 特效编辑器VFX Graph 543
实践操作78:Visual Effect Graph的安装 543
1.1 Unity简介 1
1.2 Unity的历史 2
1.3 Unity 2017中的重要特性 3
1.3.1 业界领先的多平台支持 3
1.3.2 VR/AR首选开发工具 4
1.3.3 Cinemachine摄像机系统 4
1.3.4 Timeline可视化工具 4
1.3.5 数字内容创建工具的工作流程改进对FBX的支持 5
1.3.6 Post-processing栈改进 5
1.3.7 粒子系统改进 5
1.3.8 全景360°/180°视频 5
1.3.9 更新版的Crunch库 5
1.3.10 光照改进 5
1.3.11 通过VR设备状态事件获得信息 6
1.3.12 轻松发布Android应用到中国小米平台 6
1.4 Unity开发案例介绍 6
1.4.1 Unity手机游戏开发案例 6
1.4.2 Unity严肃游戏开发案例 7
第 2章 Unity安装与购买
2.1 Unity安装 10
2.1.1 实践操作01:在Windows操作系统下的安装 10
2.1.2 实践操作02:在macOS下的安装 12
2.2 购买许可证 14
实践操作03:在线购买Unity Plus加强版 15
第3章 Unity编辑器
3.1 实践操作04:工程的创建 16
3.2 界面布局 16
3.2.1 导航窗口 16
3.2.2 界面布局 17
3.2.3 界面定制 18
3.3 工具栏 18
3.3.1 Transform Tools(变换工具) 18
3.3.2 Transform Gizmo Tools(变换辅助工具) 21
3.3.3 Play(播放控制) 21
3.3.4 Layers(分层下拉列表) 21
3.3.5 Layout(布局下拉列表) 21
3.4 菜单栏 21
3.4.1 File(文件)菜单 21
3.4.2 Edit(编辑)菜单 22
3.4.3 Assets(资源)菜单 23
3.4.4 GameObject(游戏对象)菜单 24
3.4.5 Component(组件)菜单 25
3.4.6 Window(窗口)菜单 26
3.4.7 Help(帮助)菜单 27
3.5 常用工作视图 28
3.5.1 Project(项目)视图 28
3.5.2 Scene(场景)视图 30
3.5.3 Game(游戏)视图 31
3.5.4 Inspector(检视)视图 32
3.5.5 Hierarchy(层级)视图 33
3.5.6 Console(控制台)视图 34
第4章 游戏对象、组件和Prefabs
4.1 实践操作05:创建游戏对象和组件 35
4.2 常用游戏对象 37
4.2.1 实践操作06:内置的几何体和空对象 37
4.2.2 Camera相机 38
4.2.3 Light(灯光) 39
4.2.4 UGUI 40
4.3 常用组件 40
4.3.1 Transform组件 40
4.3.2 Mesh组件 40
4.3.3 Physics组件 40
4.3.4 Particle System组件 41
4.3.5 Audio组件 41
4.3.6 Scripts组件 41
4.4 Prefabs(预设体) 41
4.4.1 实践操作07:创建Prefabs 41
4.4.2 实例化Prefabs 43
4.4.3 实践操作08:修改Prefabs 43
第5章 创建基本的3D游戏场景
5.1 实践操作09:创建3D游戏场景 46
5.2 地形 47
5.2.1 实践操作10:编辑地形 47
5.2.2 实践操作11:添加树木和植被 51
5.2.3 实践操作12:添加水效果 53
5.2.4 地形设置参数详解 54
5.3 实践操作13:光源和阴影 56
5.4 角色控制 58
5.4.1 实践操作14:创建第 一人称控制器 58
5.4.2 实践操作15:创建第三人称控制器 59
5.5 静态景物 61
5.5.1 实践操作16:导入外部物体 61
5.5.2 实践操作17:创建物理阻挡 62
5.6 环境和音效 63
5.6.1 实践操作18:添加天空盒 63
5.6.2 实践操作19:添加雾效 64
5.6.3 实践操作20:添加音效 65
第6章 创建基本的2D游戏场景
6.1 实践操作21:创建2D游戏场景 67
6.2 实践操作22:创建工作层 68
6.3 导入图片资源 68
6.4 创建Tilemap 69
实践操作23:创建Tilemaps 70
6.5 创建静态场景 71
6.5.1 创建静态景物 71
实践操作24:创建背景层 71
实践操作25:创建前景层 74
6.5.2 层级排序 76
6.5.3 Outline Editor功能 76
6.5.4 2D的九宫格技术 77
6.6 实践操作26:创建灯光 79
6.7 实践操作27:2D角色控制 81
6.8 2D游戏场景案例 83
第7章 资源的导入与导出流程
7.1 资源导入 85
7.1.1 外部资源场景工具介绍 85
7.1.2 Unity导入外部资源的方法 86
7.1.3 实践操作28:3D模型、材质的导入 87
7.1.4 图片资源的导入 92
7.1.5 3D动画的导入 99
7.1.6 音频资源的导入 99
7.1.7 视频资源的导入 101
7.2 资源包(unitypackage)的使用 103
7.2.1 资源包的导入 104
7.2.2 实践操作29:资源包的导出 104
7.3 Asset Store的介绍和使用 105
7.3.1 Asset Store简介 105
7.3.2 实践操作30:Asset Store的使用 106
第8章 3D数学基础
8.1 3D坐标系 107
8.1.1 全局坐标系 107
8.1.2 局部坐标系 108
8.1.3 相机坐标系 109
8.1.4 屏幕坐标系 109
8.2 向量 109
8.2.1 向量的运算 109
8.2.2 Vector3类 110
实践操作31:计算两物体间的距离 111
实践操作32:缓动效果 112
8.3 矩阵 113
8.4 齐次坐标 113
8.5 四元数 114
实践操作33:通过四元数控制对象旋转 116
8.6 坐标转换原理 117
8.6.1 世界坐标与局部坐标的转换 117
实践操作34:改变全局和局部坐标 117
8.6.2 世界坐标与屏幕坐标的转换 119
实践操作35:设置世界坐标 119
第9章 Unity脚本语言
9.1 Unity脚本语言 122
9.2 创建并运行脚本 122
9.2.1 实践操作36:创建脚本 122
9.2.2 MonoDevelop编辑器 123
9.2.3 必然事件 124
实践操作37:使用必然事件 124
9.3 C#基本语法 126
9.3.1 变量和常量 126
9.3.2 运算符和表达式 126
9.3.3 语句和函数 128
实践操作38:使用语句 128
9.3.4 访问修饰符 131
9.3.5 数组、链表和字典 132
实践操作39:使用数组 132
实践操作40:使用链表 134
9.3.6 代码注释 138
9.3.7 C#脚本 139
9.4 访问游戏对象和组件 140
9.4.1 MonoBehaviour 类 140
9.4.2 访问游戏对象 140
9.4.3 访问组件 141
实践操作41:访问组件或游戏对象 143
9.5 常用脚本API 144
9.5.1 Transform类 144
实践操作42:使用Transform组件控制游戏对象 145
9.5.2 Time类 146
9.5.3 Random类 147
9.5.4 Mathf类 147
实践操作43:使用Mathf.SmoothDamp函数
制作相机的缓冲跟踪效果 148
9.5.5 Coroutine协同程序 149
实践操作44:使用协同程序 150
9.6 脚本生命周期 151
第 10章 信息输入管理
10.1 Input Manager 153
10.2 鼠标输入 155
实践操作45:鼠标输入的操作 155
10.3 键盘输入 157
实践操作46:键盘输入的操作 158
10.4 游戏外设输入 159
实践操作47:游戏外设输入的操作 159
10.5 移动设备输入 160
实践操作48:移动设备输入的操作 161
10.6 自定义输入 164
第 11章 物理系统
11.1 概述 166
11.2 物理系统相关组件 166
11.2.1 刚体组件 167
11.2.2 角色控制器 168
11.2.3 碰撞体组件 169
11.2.4 物理材质 173
11.2.5 布料组件 174
11.2.6 关节组件 179
11.2.7 力场组件 185
11.3 可视化物理调试 185
第 12章 粒子系统
12.1 什么是粒子系统 188
12.2 在Unity中使用粒子系统 189
12.3 高级应用技巧 191
实践操作49:学习使用标准资源包里的粒子特效 191
实践操作50:控制爆炸粒子 191
实践操作51:控制粒子的大小 193
12.4 参数详解 196
第 13章 动画系统
13.1 概述 212
13.2 Unity动画相关组件 213
13.2.1 Animator和Animator Controller 213
13.2.2 Animation动画编辑器 221
13.3 外部动画资源的准备和导入 223
13.3.1 获取人形网格模型 223
13.3.2 导入动画 224
13.3.3 动画分解 224
13.3.4 循环播放动画片段 225
13.4 人形角色动画 226
13.4.1 创建Avatar 226
13.4.2 配置Avatar 226
13.4.3 设置Muscle参数 228
13.4.4 Avatar Mask 228
13.4.5 人形动画的重定向 229
实践操作52:将第三人称控制动画重定向到其他角色 229
13.4.6 逆向运动学功能 231
实践操作53:逆向运动学应用 231
13.5 动画混合 233
13.5.1 混合树 233
13.5.2 1D混合 234
13.5.3 2D混合 236
13.5.4 直接混合 238
第 14章 Timeline
14.1 Timeline概述 239
14.2 Timeline工作流程 242
14.2.1 创建Timeline资源和Timeline实例 242
14.2.2 用无限剪辑录制基本动画 243
14.2.3 将无限剪辑转换为动画片段 246
14.2.4 创建人形动画 246
14.3 Timeline编辑窗口 249
14.3.1 Timeline预览和Timeline选择器 251
14.3.2 Timeline播放控件 251
14.3.3 轨道列表 252
14.3.4 剪辑视图 257
14.3.5 曲线视图 264
14.3.6 Timeline设置 268
14.4 Playable Director组件 269
14.5 Cinemachine Camera 系统 270
14.5.1 下载并导入资源包 270
14.5.2 Cinemachine Camera主要的组件 271
实践操作54:使用Cinemachine Camera 271
14.6 综合案例:Timeline
和Cinemachine Camera的综合使用 274
第 15章 UGUI
15.1 概述 280
15.2 UGUI之Canvas画布 280
15.2.1 Canvas 280
15.2.2 Canvas Group 281
15.2.3 元素绘制顺序 281
15.3 UGUI之EventSystem对象 282
15.3.1 Event System组件 282
15.3.2 Standalone Input Module组件 282
15.4 UGUI之基本布局 283
15.4.1 矩形工具 283
15.4.2 Rect Transform矩形变换 283
15.4.3 Anchors锚点 284
15.4.4 Pivot轴心点 285
15.4.5 补充 285
15.5 UGUI之Text文本 285
15.5.1 Text介绍 285
15.5.2 Rich Text富文本 286
15.6 UGUI之Image图像 286
15.7 UGUI之Raw Image原始图像 287
15.8 UGUI之Mask遮罩 288
15.9 UGUI之过渡选项和导航选项 288
15.9.1 Transition过渡选项 288
15.9.2 Navigation导航选项 289
15.10 UGUI之Button按钮 290
15.10.1 Button介绍 290
15.10.2 实践操作55:Button单击事件绑定 291
15.11 UGUI之Toggle开关 294
15.11.1 Toggle介绍 294
15.11.2 实践操作56:Toggle事件绑定 295
15.12 UGUI之Slider滑动条 295
15.12.1 Slider介绍 295
15.12.2 实践操作57:Slider事件绑定 296
15.13 UGUI之Scrollbar滚动条 297
15.13.1 Scrollbar介绍 297
15.13.2 Scrollbar事件绑定 298
15.14 UGUI之Dropdown下拉列表 298
15.14.1 Dropdown介绍 298
15.14.2 Dropdown事件绑定 300
15.14.3 实践操作58:Dropdown其他操作 300
15.15 UGUI之Input Field输入栏 301
15.15.1 Input Field介绍 301
15.15.2 Input Field事件绑定 302
15.16 UGUI之Scroll View滚动视图 302
15.16.1 Scroll View介绍 302
15.16.2 Scroll View事件绑定 303
15.17 UGUI之自动布局组件 303
15.17.1 Layout Element布局元素 303
15.17.2 Content Size Fitter内容尺寸裁切 304
15.17.3 Aspect Ratio Fitter长宽比例裁切 304
15.17.4 Horizontal Layout Group水平布局组 305
15.17.5 Vertical Layout Group垂直布局组 305
15.17.6 Grid Layout Group网格布局组 306
第 16章 音效和视频
16.1 音效系统 307
16.1.1 概述 307
16.1.2 常用组件 308
16.1.3 Audio Mixer音频混合 310
16.1.4 Audio Filters音频过滤 321
16.1.5 Audio Effects音频效果 325
16.1.6 Microphone麦克风 325
16.2 视频播放器 326
16.2.1 概述 326
16.2.2 Video Player组件 327
16.2.3 视频剪辑 328
16.2.4 视频透明度支持 328
16.2.5 全景视频 329
实践操作59:全景视频之海上冲浪 329
第 17章 全局光照
17.1 概述 333
17.1.1 Enlighten 333
17.1.2 Progressive Lightmapper 333
17.1.3 Lightmap seam stitching 334
17.2 实践操作60:烘焙光照用法示例 335
17.3 系统参数详解 338
17.3.1 FBX模型导入设置 338
17.3.2 Reflection Probe反射探针 338
17.3.3 Light Probe Group光照探针组件 341
17.3.4 Lighting 窗口 341
17.3.5 Light Explorer光探测器 345
第 18章 导航网格寻路
18.1 Unity的导航寻路系统 346
18.2 实践操作61:创建一个导航网格 347
18.3 系统参数详解 351
18.3.1 Navigation窗口 351
18.3.2 Nav Mesh Agent 352
18.3.3 Off Mesh Link 353
18.3.4 Nav Mesh Obstacle 353
18.4 综合案例:导航网格寻路的高级技巧 354
18.4.1 使用Off Mesh Link组件 354
18.4.2 为网格分层 355
18.4.3 动态更改可行进层 356
18.4.4 使用Nav Mesh Obstacle组件 358
第 19章 遮挡剔除
19.1 概述 359
19.2 参数详解 360
19.2.1 Occlusion窗口 360
19.2.2 Occlusion Area组件 362
19.2.3 Occlusion Portal组件 363
19.3 综合案例:遮挡剔除的使用 363
第 20章 后期屏幕渲染特效
20.1 概述 365
20.2 参数详解 367
20.2.1 Fog(雾效) 367
20.2.2 Anti-aliasing(抗锯齿) 368
20.2.3 Ambient Occlusion(环境光遮罩) 369
20.2.4 Screen Space Reflection(屏幕空间反射) 370
20.2.5 Depth of Field(景深) 371
20.2.6 Motion Blur(运动模糊) 372
20.2.7 Eye Adaptation(眼部适应) 373
20.2.8 Bloom(泛光) 374
20.2.9 Color Grading(颜色分级) 375
20.2.10 User Lut 378
20.2.11 Chromatic Aberration(色差) 379
20.2.12 Grain(颗粒) 379
20.2.13 Vignette(渐晕) 380
20.2.14 Dithering(抖动) 381
20.2.15 Debug Views(调试视图) 381
20.2.16 Monitors(监视器) 384
第 21章 Shader开发
21.1 Shader概述 386
21.2 内建Shader介绍 387
21.2.1 内建着色器 387
实践操作62:使用内建着色器 388
21.2.2 内建标准着色器 389
实践操作63:使用标准着色器 392
21.3 Shader的创建 393
21.4 ShaderLab基础语法 394
21.4.1 Properties属性 396
21.4.2 SubShader子着色器视图 398
21.4.3 Fallback备用着色器 399
21.4.4 Category(分类) 399
21.5 自定义Shader 400
21.5.1 Fixed Function Shaders(固定功能管线着色器) 400
21.5.2 Surface Shaders(表面着色器) 401
21.5.3 Vertex and Fragment Shaders(顶点片段着色器) 402
21.6 综合案例:着色器编写实例 404
21.6.1 表面着色器 404
21.6.2 顶点片段着色器 406
第 22章 AssetBundle工作流程
22.1 AssetBundle的创建 409
22.1.1 AssetBundle的UI 409
22.1.2 BuildPipeline BuildAsset-Bundles 410
实践操作64:AssetBundle的创建 411
22.1.3 Unity处理Assets之间的依赖 412
22.2 AssetBundle的下载 414
22.3 AssetBundle的加载和卸载 415
22.3.1 加载AssetBundle 415
22.3.2 从AssetBundle中加载Assets 417
22.3.3 AssetBundle Variant的使用 418
22.3.4 卸载AssetBundle 419
22.4 AssetBundle的内存管理 419
22.4.1 下载和加载AssetBundle时内存的影响 419
22.4.2 AssetBundle及Asset的卸载 420
22.5 AssetBundle工具 420
22.5.1 Configure的使用 421
22.5.2 Build的使用 423
第 23章 多人游戏和联网
23.1 授权服务器 425
23.2 非授权服务器 426
23.3 Hight Level API 426
23.4 Transport Layer API 427
23.5 Unity的多人游戏 429
23.5.1 集成多人游戏服务 430
实践操作65:使用HUD进行集成 430
23.5.2 使用Hight Level API进行集成 432
23.5.3 使用NetworkTransport进行集成 432
23.6 Unity网络组件介绍 439
23.6.1 Network Animator 439
23.6.2 Network Discovery 439
23.6.3 Network Identity 440
23.6.4 Network Lobby Manager 441
23.6.5 Network Lobby Player 442
23.6.6 Network Manager 443
23.6.7 Network Manager HUD 445
23.6.8 Network Proximity Checker 446
23.6.9 Network Start Position 446
23.6.10 Network Transform 446
23.6.11 Network Transform Child 447
23.6.12 Network Transform Visualizer 448
23.7 Unity的网络请求 449
23.7.1 常用操作:使用HLAPI 449
23.7.2 高级操作:使用LLAPI 453
23.8 综合案例:多人游戏实战 461
23.9 Unity服务 466
23.9.1 相关资源 466
23.9.2 Unity Ads广告 467
23.9.3 Unity Game Analytics游戏分析 467
23.9.4 Everyplay视频录制 468
23.9.5 Unity Cloud Build云构建 469
23.9.6 Unity Collaborate协同服务 469
第 24章 编辑器扩展
24.1 编辑器脚本 470
24.2 实践操作66:创建编辑器窗口 470
24.3 自定义Inspector视图 473
24.4 实践操作67:自定义Scene视图 474
24.5 第三方编辑器插件 475
第 25章 脚本调试与优化
25.1 实践操作68:脚本调试 476
25.2 Profiler性能分析器 478
25.2.1 Profiler的使用 478
25.2.2 iOS设备启用远程分析 481
25.2.3 Android设备启用远程分析 482
25.3 Log Files 482
25.4 脚本优化 484
25.4.1 各个平台通用的优化方案 484
25.4.2 移动设备的优化 485
第 26章 跨平台发布
26.1 Windows平台发布 487
26.1.1 实践操作69:Windows平台发布步骤 487
26.1.2 Player Settings参数详解 487
26.2 Android平台发布 493
26.2.1 实践操作70:Java SDK的环境配置 493
26.2.2 Android SDK的安装 494
26.2.3 实践操作71:Android平台发布步骤 494
26.2.4 Player Settings参数详解 495
26.3 iOS平台发布 500
26.3.1 实践操作72:iOS平台发布前的准备工作 500
26.3.2 实践操作73:项目工程的输出和发布 501
26.3.3 Player Settings参数详解 502
26.4 WebGL平台发布 506
26.4.1 实践操作74:WebGL平台发布步骤 506
26.4.2 Player Settings参数详解 507
26.5 Facebook平台发布 510
26.5.1 实践操作75:Facebook平台发布步骤 510
26.5.2 Player Settings参数详解 511
第 27章 案例分析之Tanks
27.1 案例工程文件下载 512
27.2 场景设置 513
27.2.1 场景碰撞区域设置 513
27.2.2 坦克初始位置 514
27.3 游戏控制 514
27.4 后期屏幕渲染特效 515
27.4.1 Bloom 515
27.4.2 Color Grading 515
27.4.3 Chromatic Aberration 516
27.4.4 Vignette 516
27.5 静态批处理 516
27.6 游戏管理 517
27.6.1 游戏参数设置 517
27.6.2 游戏流程控制逻辑 518
27.7 坦克控制 521
27.7.1 坦克运动控制的实现 521
27.7.2 坦克血条的实现 524
27.7.3 坦克射击的实现 526
27.8 相机控制 530
第 28章 Unity 2018新特性
28.1 项目模板功能 533
28.1.1 3D附带额外设置 534
28.1.2 高清晰渲染管线 534
28.1.3 轻量级渲染管线 535
28.1.4 轻量级VR渲染管线 535
28.2 Package Manager 536
实践操作76:Package Manager的相关操作 537
28.3 着色器视图Shader Graph 538
28.3.1 安装Shader Graph 539
实践操作77:安装Shader Graph 539
28.3.2 Shader Graph功能介绍 540
28.4 可编程渲染管线SRP 540
28.4.1 SRP批处理器加速CPU渲染 541
28.4.2 可编程着色器变体移除 541
28.4.3 轻量级渲染管线(预览版) 541
28.4.4 高清晰渲染管线(预览版) 542
28.5 特效编辑器VFX Graph 543
实践操作78:Visual Effect Graph的安装 543
猜您喜欢