第1章 Unity 3D界面介绍 16
1.1 Unity的标题栏 16
1.2 菜单栏 16
1.2.1 file菜单 16
1.2.2 Edit菜单 17
1.2.3 Assets资源菜单 17
1.2.4 GameObiect游戏物体菜单 18
1.2.5 Component组件菜单 18
1.2.6 Terrain菜单 19
1.2.7 Window菜单 19
1.2.8 Help帮助菜单 19
1.3 工具栏 20
1.4 项目视窗 20
1.5 层次视图 22
1.6 场景视图 23
1.6.1 场景变换图标 23
1.6.2 视图工具条 24
1.7 游戏视图 25
1.8 Inspector(属性)视窗 26
第2章 资源管理 28
2.1 内部资源 28
2.1.1 新建项目 28
2.1.2 内部资源创建 29
2.2 外部资源创建及导入 34
2.2.1 模型输出设置 34
2.2.2 角色动画的输出及导入 39
2.3 材质和着色器 43
2.3.1 材质、纹理、着色器 44
2.3.2 材质、着色器应用实例 47
2.4 2D纹理和Movie纹理 55
2.5 声音文件 61
2.6 Asset Store(资源Store) 66
2.7 Prefab(预设) 68
2.7.1 Prefab(预设)创建及属性视窗操作 68
2.7.2 运行实例化 72
2.8 Project视窗搜索功能 76
2.8.1 资源文件显示和管理 76
2.8.2 资源创建和搜素 78
2.9 资源输入原理 79
第3章 场景创建 83
3.1 游戏物体与组件 83
3.1.1 物体和组件 84
3.2 属性视窗的使用 87
3.2.1 属性编辑 87
3.2.2 属性类型 88
3.2.3 多物体编辑 89
3.2.4 属性视窗菜单 91
3.3 场景视图操作 92
3.3.1 场景浏览 92
3.3.2 场景物体定位 93
3.3.3 场景物体标识 94
3.4 灯光和摄像机 95
3.4.1 Unity灯光 95
3.4.2 Unity灯光 100
第4章 脚本及变量 105
4.1 脚本及变量 105
4.1.1 脚本创建 105
4.1.2 使用变量 107
4.2 游戏物体组件访问 109
4.2.1 游戏对象成员组件的访问 109
4.2.2 自定义组件访问 110
4.3 游戏物体间访问 112
4.3.1 引用物体 112
4.3.2 引用脚本 113
4.3.3 使用Find()函数引用物体 114
4.3.4 使用标签的方式引用物体 115
4.4 脚本时间控制 116
4.4.1 deltaTime变量的使用 116
4.4.2 time变量的使用 117
4.4.3 时间控制 118
4.5 随机数的使用 119
4.5.1 随机数使用 120
4.5.2 随机数应用实例 121
4.6 C#脚本编写 125
4.6.1 JavaScript脚本和C#脚本 125
4.6.2 JavaScript和C#变量及函数定义 126
第5章 GUI图形用户界面 131
5.1 UnityGUI原理介绍 131
5.1.1 GUI控件使用 131
5.1.2 GUI控件声明 133
5.2 常用控件及使用 135
5.2.1 标签控件 135
5.2.2 按钮控件 135
5.2.3 文本输入框控件 136
5.2.4 开关按钮控件 137
5.2.5 水平滑块和垂直滑块控件 138
5.3 复合控件及使用 138
5.3.1 工具条控件 138
5.3.2 选择网格控件 140
5.4 UnityGUI群组视图控件及使用 142
5.4.1 UnityGUI群组视图控件 143
5.4.2 使用嵌套组 144
5.5 GUI style及创建自定义风格组件 145
5.5.1 使用自定义的GUI风格 145
5.5.2 GUI Skin应用 148
5.6 GUILayout控件及使用 150
5.6.1 GUILayout控件 151
5.7 动态窗口添加及使用中文字体 153
5.7.1 窗口控件使用 153
5.7.2 窗口控件定制 155
第6章 Unity地形引擎系统 158
6.1 地形系统工作流程 158
6.1.1 Unity中地形创建 158
6.1.2 Terrain菜单命令应用 158
6.2 地形编辑 160
6.2.1 地形编辑工具 160
6.2.2 地形纹理绘制 162
6.2.3 添加树木、植被等地形元素 165
6.3 地形设置及公路效果创建 167
6.3.1 地形设置 167
6.3.2 公路效果创建 168
第7章 输入与控制 172
7.1 Unity输入管理 172
7.1.1 虚拟轴定义 172
7.1.2 虚拟轴选项设置 173
7.2 虚拟轴应用及键盘事件 176
7.2.1 虚拟轴应用 176
7.2.2 键盘检测 178
7.3 鼠标事件与GUI系统双击检测 180
7.3.1 鼠标检测 180
7.3.2 GUI系统双击检测 181
第8章 角色控制器组件 184
8.1 角色控制器 184
8.1.1 第一人称角色控制器 184
8.2 第一人称角色控制器组件构成 186
8.2.1 角色控制器组件 186
8.2.2 Character Motor(角色引擎)脚本 188
第9章 物理引擎介绍 194
9.1 物理引擎介绍 194
9.1.1 刚体使用及选项设置 194
9.1.2 实施刚体力 196
9.2 刚体碰撞及消息传递 200
9.2.1 刚体碰撞器及使用 201
9.2.2 刚体碰撞及消息传递 205
9.3 刚体关节 208
9.3.1 刚体铰链关节的使用 209
9.3.2 固定和弹簧关节的使用 213
9.3.3 角色和配置关节的使用 216
9.4 布料系统的使用 220
9.4.1 交互布料系统的使用 220
9.4.2 交互布料系统的属性设置 222
第10章 Unity粒子系统 225
10.1 粒子系统创建和操作方式 225
10.1.1 粒子系统的创建 225
10.1.2 粒子属性控制 226
10.2 粒子属性调节 231
10.2.1 粒子通用属性调节 231
10.2.2 粒子扩展属性的调节 232
10.3 粒子碰撞、渲染和材质 235
10.3.1 粒子碰撞 235
10.3.2 粒子渲染 240
第11章 树效果 246
11.1 程序自动生成的树效果 246
11.1.1 创建树前的准备工作 246
11.1.2 使用程序自动创建树 247
11.1.3 添加树材质 255
11.2 手动创建的树效果 256
11.2.1 手动创建树 257
11.3 树的基本属性定义 263
11.3.1 树的“根节点”属性 264
11.3.2 树枝的属性调节 267
11.3.3 树叶属性调节及树与地形的搭配使用 273
第12章 射线碰撞检测 279
12.1 射线碰撞简介 279
12.2 射线碰撞检测应用实例 279
第13章 Mecanim动画系统 283
13.1 Unity新的动画系统Mecanim总览 283
13.1.1 Mecanim术语 284
13.1.2 角色导入及Avatar工作原理 286
13.1.3 Mecanim Body Mask的使用 294
13.2 Mecanim的Retargeting 296
13.2.1 Mecanim的Retargeting概念 296
13.2.2 Mecanim Retargeting应用 299
13.3 Mecanim动画片段循环设置 306
13.3.1 动画片段循环处理 306
13.3.2 运动捕捉动画片段循环处理 308
13.3.3 Mecanim Root Motion应用 315
13.4 Animator(动画)组件和动画控制器资源 322
13.4.1 动画组件及其属性 322
13.4.2 动画控制器 323
13.5 Mecanim动画状态机 325
13.5.1 动画状态的创建 325
13.5.2 动画状态的属性 327
第14章 Mecanim高级主题 330
14.1 角色动画状态机 330
14.1.1 角色效果调节 330
14.1.2 创建动画状态机 331
14.1.3 动画状态机条件控制 338
14.2 Mecanim Blend tree应用 341
14.2.1 Blend Tree应用 342
14.2.2 Blend Tree 1D选项 348
14.2.3 复合Blend Tree 350
14.3 Mecanim动画控制器层应用 357
14.3.1 Mecanim层概念 357
14.3.2 Mecanim层的执行顺序和权重设置 360
14.4 2D BlendTree 362
14.4.1 2D融和应用 363
14.4.2 2D Blend Tree的脚本控制 367
14.4.3 2D Blend Tree的选项设置 370
14.5 Mecanim的目标匹配功能 373
14.5.1 目标匹配功能 373
14.5.2 在脚本中创建位置匹配功能 374
14.6 Mecanim一般性动画处理 377
14.6.1 一般性的动画 377
14.6.2 一般性动画处理实例 378
14.7 Mecanim跟随效果 384
14.7.1 角色准备 384
14.8 Mecanim群体动画 388
14.8.1 群组动画创建 389
14.8.2 Mecanim动画曲线应用 394
第15章 Mecanim射击类游戏实例 401
15.1 角色及场景准备 401
15.1.1 角色准备 401
15.1.2 武器准备 404
15.1.3 目标物体指定 405
15.2 角色瞄准和射击逻辑 406
15.2.1 创建瞄准逻辑 407
15.2.2 创建IK手柄匹配 410
15.2.3 创建射击逻辑 413
15.2.4 创建射击的动作 416
15.2.5 目标物体设置 419
第16章 Mecanim与自动寻径应用 425
16.1 自动寻径功能 425
16.1.1 Nav Mesh Agent组件介绍 425
16.1.2 Nav Mesh网格创建 426
16.1.3 寻径功能具体实现 429
16.2 角色动画逻辑 430
16.2.1 为角色添加动画状态机 430
16.2.2 创建自定义的类 434
16.2.3 NavMeshAgent组件的三种状态 440
第17章 Unity Native 2D工具 445
17.1 2D开发工具总览 445
17.1.1 2D开发工具功能 445
17.1.2 2D精灵物体创建和编辑 449
17.2 2D动画制作及动画事件 452
17.2.1 2D动画制作: 452
17.2.2 动画事件 457
第18章 2D rigidBody刚体 462
18.1 2D刚体工作流程 462
18.1.1 2D精灵物体的输入属性及刚体创建 462
18.1.2 2D rigidBody刚体工作流程 464
18.1.3 2D刚体属性 467
18.2 2d Collider碰撞器属性 471
18.2.1 添加2D碰撞器组件 471
18.2.2 2D物理系统碰撞方式 474
18.2.3 实施2D刚体力及构建二维矢量 478
18.2.4 2D碰撞及触发消息传递 494
18.3 unity 2D物理系统关节功能 499
18.3.1 物理关节的使用 499
18.3.2 2D关节应用实例 506