初识篇 1
第1章 认识Unity引擎 1
1.1 Unity简介 2
1.2 Unity发展史 3
1.3 Unity 5.0 4
第2章 Unity开发案例介绍 7
2.1 Unity游戏介绍 8
2.2 Unity非游戏应用 11
第3章 软件安装、授权与服务 13
3.1 软件安装 14
3.1.1 在Windows下的安装 14
3.1.2 在Mac下的安装 17
3.2 授权 19
3.3 服务 23
第4章 Unity开发资源介绍 25
4.1 Unity Asset Store资源商店 26
4.1.1 Asset Store简介 26
4.1.2 Asset Store使用方法 27
4.2 其他服务 31
4.2.1 Unity Ads服务 31
4.2.2 Unity Game Analytics服务 32
4.2.3 Unity Cloud Build服务 32
4.2.4 Everyplay服务 33
操作篇 35
第5章 Unity编辑器 35
5.1 界面布局 36
5.1.1 导航窗口 37
5.1.2 界面布局 39
5.1.3 界面定制 40
5.2 打开范例工程 41
5.3 工具栏 44
5.3.1 变换工具 45
5.3.2 变换辅助工具 48
5.3.3 播放控制 48
5.3.4 分层下拉列表 49
5.3.5 布局下拉列表 49
5.4 菜单栏 49
5.4.1 文件菜单 49
5.4.2 编辑菜单 52
5.4.3 资源菜单 53
5.4.4 游戏对象菜单 53
5.4.5 组件菜单 54
5.4.6 窗口菜单 54
5.4.7 帮助菜单 55
5.5 常用工作视图 55
5.5.1 项目视图 55
5.5.2 场景视图 58
5.5.3 游戏视图 64
5.5.4 检视视图 67
5.5.5 层级视图 68
5.5.6 控制台视图 69
5.5.7 动画视图 70
5.5.8 动画控制器视图 70
5.5.9 Sprite编辑器 71
5.5.10 Sprite打包工具 73
5.5.11 光照贴图烘焙视图 75
5.5.12 遮挡剔除视图 76
5.5.13 导航寻路视图 76
5.5.14 版本控制视图 77
5.5.15 资源商店 77
第6章 创建基本的3D游戏场景 79
6.1 创建游戏工程和场景 80
6.2 创建地形 83
6.2.1 编辑地形 83
6.2.2 添加树木和植被 90
6 2 3 添加水放果 93
6.3 创建光源和阴影 94
6.4 添加场景静态景物 97
6.4.1 创建基本几何体 97
6.4.2 导入外部物体 100
6.5 添加角色和控制 102
6.5.1 创建第一人称角色控制器 102
6.5.2 创建物理阻挡 105
6.6 添加环境和效果 108
6.6.1 添加天空盒 108
6.6.2 添加雾效 110
6.6.3 添加音效 111
第7章 创建基本的2D游戏场景 115
7.1 创建游戏工程和场景 116
7.2 创建工作层 118
7.3 添加静态景物 119
7.3.1 导入静态图片 119
7.3.2 创建静态景物 119
7.4 添加角色和控制 123
7.4.1 创建Sprite动画 123
7.4.2 创建主要的游戏对象 131
7.4.3 创建2D物理阻挡 139
7.5 添加2D效果 142
第8章 资源导入导出流程 147
8.1 外部资源的创建 148
8.1.1 外部资源创建工具介绍 148
8.1.2 从3ds Max中导出模型、材质和动画 149
8.2 Unity资源导入流程 155
8.2.1 3D模型、材质的导入 155
8.2.2 2D图像的导入及设置 163
8.2.3 3D动画的导入 174
8.2.4 2D动画的导入 176
8.2.5 音频、视频的导入及设置 179
8.3 资源包的导入 184
8.3.1 Unity Asset Store简介 184
8.3.2 Unity Asset Store的使用 185
8.4 资源包的导出 189
第9章 游戏对象、组件和Prefabs 193
9.1 创建游戏对象和组件 194
9.2 常用组件介绍 197
9.3 创建Prefabs 198
9.3.1 创建和导入Prefabs 199
9.3.2 实例化Prefabs 202
9.3.3 嵌套Prefabs(Nested Prefabs) 206
第10章 Shuriken粒子系统 213
10.1 Shuriken概述 214
10.2 基本用法举例 215
10.3 高级应用技巧 221
10.3.1 地面火焰效果案例 221
10.3.2 烟花效果案例 238
10.4 系统参数详解 252
第11章 Mecanim动画系统 263
11.1 Mecanim概述 264
11.2 应用示例 265
11.3 资源的准备和导入 275
11.3.1 如何获取人形网格模型 275
11.3.2 如何导入动画 276
11.3.3 动画分解 276
11.4 使用人形角色动画 279
11.4.1 创建Avatar 280
11.4.2 配置Avatar 281
11.4.3 设置Muscle参数 283
11.4.4 Avatar Mask 284
11.4.5 人形动画的重定向 285
11.4.6 逆向运动学功能 288
11.4.7 一般动画 291
11.5 在游戏中使用角色动画 292
11.5.1 循环动画片段 292
11.5.2 Animator组件 293
11.5.3 AnimatorController 293
11.5.4 动画状态机 294
11.5.5 混合树 299
11.5.6 1D混合 300
11.5.7 2D混合 301
第12章 物理系统 303
12.1 概述 304
12.2 应用示例 304
12.3 高级应用技巧 309
12.4 物理系统相关组件及参数详解 318
12.4.1 Rigidbody组件 318
12.4.2 Character Controller组件 322
12.4.3 碰撞体组件 324
12.4.4 布料组件 332
12.4.5 关节组件 335
12.4.6 2D Physics Effectors组件 349
12.4.7 力场组件 351
第13章 音效系统 355
13.1 概述 356
13.2 应用示例 356
13.2.1 项目概要 356
13.2.2 项目分析 358
13.3 高级应用技术 362
13.4 声音系统相关组件及参数详解 368
第14章 全局光照 371
14.1 全局光照介绍 372
14.2 基本用法举例 372
14.3 高级应用技巧 376
14.4 系统参数介绍 388
第15章 导航网格寻路 397
15.1 概述 398
15.2 简单应用举例 398
15.3 高级应用技巧 404
15.3.1 使用Off-Mesh Link组件 404
15.3.2 为网格分层 406
15.3.3 动态更改可行进层 410
15.3.4 使用Navmesh Obstacle组件 413
15.4 系统相关参数详解 415
第16章 遮挡剔除 419
16.1 概述及其应用示例 420
16.2 高级应用技巧 423
16.2.1 使用Occlusion Area组件 423
16.2.2 使用Occlusion Portals组件 424
16.3 设置烘焙参数 425
第17章 后期屏幕渲染特效 427
17.1 概述 428
17.2 使用参数详解 433
开发篇 457
第18章 3D数学基础知识 457
18.1 3D坐标系 458
18.2 向量 464
18.3 矩阵 468
18.4 齐次坐标 470
18.5 四元数 470
第19章 Unity脚本开发基础 475
19.1 脚本介绍 476
19.2 Unity脚本语言 477
19.3 创建并运行脚本 478
19.3.1 创建脚本 478
19.3.2 MonoDevelop编辑器 479
19.3.3 必然事件 481
19.4 C#基本语法 485
19.5 访问游戏对象和组件 493
19.5.1 MonoBehaviour类 493
19.5.2 访问游戏对象 493
19.5.3 访问组件 494
19.6 常用脚本API 498
19.6.1 Transform组件 498
19.6.2 Time类 501
19.6.3 Random类 502
19.6.4 Mathf类 502
19.6.5 Coroutine协同程序 504
第20章 输入与控制 507
20.1 输入管理器 508
20.2 鼠标输入 510
20.3 键盘操作 512
20.4 游戏外设输入 515
20.5 移动设备输入 516
20.6 自定义输入 519
第21章 GUI开发 523
21.1 Unity新GUI系统介绍 524
21.1.1 画布 524
21.1.2 矩形变换 526
21.1.3 在场景视图中编辑 527
21.1.4 锚点 527
21.1.5 轴心点 528
21.1.6 文本 529
21.1.7 图像 530
21.1.8 原始图像 531
21.1.9 遮罩 532
21.1.10 过渡选项 532
21.1.11 导航选项 534
21.1.12 按钮 534
21.1.13 开关 535
21.1.14 滑动条 536
21.1.15 滚动条 537
21.1.16 输入栏 538
21.1.17 布局元素控件 539
21.1.18 内容尺寸裁切 540
21.1.19 长宽比例裁切 540
21.1.20 水平布局组 541
21.1.21 垂直布局组 541
21.1.22 网格布局组 542
21.2 UGUI应用实例 543
第22章 Shader开发 547
22.1 Shader概述 548
22.2 内建Shader介绍 549
22.2.1 内建着色器(4.X版本) 549
22.2.2 内建标准着色器(5.X版本) 553
22.3 创建自己的Shader 563
22.4 ShaderLab基础语法 565
22.4.1 Properties属性 567
22.4.2 SubShader子着色器视图 568
22.4.3 Fallback备用着色器 570
22.4.4 分类 570
22.5 Unity中的三种自定义Shader 571
22.5.1 固定功能管线着色器 571
22.5.2 表面着色器 572
22.5.3 顶点片段着色器 576
22.6 反射探头 581
第23章 AssetBundle工作流程 591
23.1 AssetBundle 593
23.1.1 AssetBundle的UI 593
23.1.2 BuildPipeline.BuildAsset-Bundles 594
23.1.3 Unity处理Assets之间的依赖 596
23.2 如何下载AssetBundle 598
23.3 AssetBundle的加载与卸载 599
23.3.1 加载AssetBundle 599
23.3.2 从AssetBundle中加载Assets 602
23.3.3 从场景AssetBundle中加载Assets 604
23.3.4 AssetBundle Variant的使用 605
23.3.5 卸载AssetBundle 605
23.4 AssetBundle的内存管理 606
23.4.1 下载和加载AssetBundle时对内存的影响 606
23.4.2 AssetBundle以及Asset的卸载 607
23.5 WWW、AssetBundle及Asset的关系 608
第24章 开发进阶 609
24.1 Unity新的网络引擎UNET 610
24.1.1 授权服务器 610
24.1.2 非授权服务器 611
24.1.3 Hight Level API 611
24.1.4 Transport Layer API 624
24.1.5 WebGL Support 626
24.1.6 Internet Services 627
24.1.7 网络视图组件 632
24.2 编辑器扩展 633
24.2.1 编辑器脚本介绍 633
24.2.2 创建编辑器窗口 633
24.2.3 自定义Inspector视图 636
24.2.4 自定义场景视图 638
24.2.5 第三方编辑器插件 639
第25章 脚本调试与优化 641
25.1 脚本调试 642
25.2 Profiler 646
25.2.1 Profiler的使用 646
25.2.2 iOS设备启用远程分析 657
25.2.3 Android设备启用远程分析 658
25.3 Log Files 659
25.4 优化建议 660
25.4.1 各个平台通用的优化方案 660
25.4.2 移动设备的优化 661
第26章 跨平台发布 663
26.1 发布到网页平台 664
26.1.1 将项目发布到Web 664
26.1.2 自定义Unity Web Player的屏幕加载 672
26.1.3 自定义Unity Web Player的行为 674
26.1.4 JavaScript与Unity的通信 675
26.1.5 使用Webplayer模板 676
26.2 发布到Android平台 682
26.2.1 Java SDK的环境配置 682
26.2.2 Android SDK的安装与项目发布 683
26.3 iOS平台的发布 690
26.3.1 发布前的准备工作 690
26.3.2 发布iOS平台的设置 692
26.3.3 项目工程输出与发布 699
26.4 WebGL平台的发布 699
26.5 Unity Cloud Build 703