第1章 Unity基础知识 1
1.1 Unity简介 1
1.2 Unity的历史 1
1.3下载与安装 2
1.4打包与发布 6
1.5小结 9
1.6习题 9
第2章 Unity编辑器 10
2.1游戏工程 10
2.2主界面 11
2.3 Project视图 12
2.4 Hierarchy视图 15
2.5 Inspector视图 15
2.6 Scene视图 16
2.6.1工具栏 16
2.6.2 Scene Gizmo 18
2.7 Game视图 19
2.7.1 Play菜单 19
2.7.2分辨率菜单 19
2.7.3 Game视图右侧菜单 20
2.8预制体 20
2.9小结 22
2.10习题 22
第3章 Unity脚本 23
3.1 MonoDevelop脚本编辑器 23
3.2 MonoBehavior 24
3.3 UnityGUI 26
3.4调试 27
3.5游戏对象的操作 28
3.5.1创建游戏对象 28
3.5.2获取游戏对象 29
3.5.3添加组件与修改组件 31
3.5.4发送广播与消息 32
3.5.5克隆游戏对象 33
3.6移动、旋转和缩放游戏对象 34
3.6.1游戏对象的位置 34
3.6.2移动游戏对象 35
3.6.3缩放游戏对象 35
3.6.4旋转游戏对象 35
3.6.5实例 35
3.7工具类 36
3.7.1时间类 36
3.7.2随机数 37
3.7.3数学类 38
3.7.4四元数 38
3.8输入控制 39
3.8.1计算机输入 39
3.8.2自定义输入 40
3.8.3移动设备输入 44
3.9小结 45
3.10习题 46
第4章 3D基础知识 47
4.1 Camera摄像机 47
4.1.1摄像机参数 47
4.1.2摄像机投射 48
4.2 3D模型 49
4.2.1 Mesh网格模型 49
4.2.2 Texture贴图 50
4.2.3 Material材质 51
4.2.4对应组件 52
4.2.5骨骼动画 53
4.3小结 53
4.4习题 54
第5章 创建场景 55
5.1创建场景 55
5.2地形编辑器 57
5.2.1升降地形工具 58
5.2.2绘制高度工具 59
5.2.3平滑地形工具 60
5.2.4绘制地形工具 60
5.2.5放置树木工具 61
5.2.6绘制细节工具 63
5.2.7地形参数设置 64
5.3风域 66
5.4小结 68
5.5习题 68
第6章 创建人物 69
6.1 Mecanim系统 69
6.2导入模型 69
6.2.1模型导入设置 69
6.2.2 Avatar的设置 72
6.3状态机 73
6.3.1 Animator 74
6.3.2添加碰撞体 75
6.3.3添加摄像机 75
6.3.4动作混合与控制 76
6.4反向动力学 86
6.5人体动画重定向 88
6.6小结 88
6.7习题 88
第7章 物理引擎 89
7.1刚体 89
7.2碰撞器 90
7.3物理材质 91
7.4触发器 92
7.5射线 93
7.6关节 94
7.6.1链条关节 95
7.6.2弹簧关节 96
7.7小结 97
7.8习题 97
第8章 粒子系统 98
8.1粒子系统介绍 98
8.2粒子系统各个模块 98
8.2.1 Particle System模块 99
8.2.2 Emission模块 99
8.2.3 Shape Module模块 99
8.2.4 Velocity over Lifetime模块 100
8.2.5 Limit Velocity over Lifetime模块 100
8.2.6 Force over Lifetime模块 100
8.2.7 Color over Lifetime模块 101
8.2.8 Color by Speed模块 101
8.2.9 Size over Lifetime模块 101
8.2.10 Size by Speed模块 101
8.2.11 Rotation over Lifetime模块 102
8.2.12 Rotation by Speed模块 102
8.2.13 External Forces模块 102
8.2.14 Collision模块 102
8.2.15 Sub Emitters模块 103
8.2.16 Texture Sheet Animation模块 104
8.2.17 Renderer模块 104
8.3实例——烟花 105
8.4实例——鼠标轨迹 106
8.4.1点状轨迹 107
8.4.2雪花轨迹 107
8.5小结 108
8.6习题 108
第9章 用户界面 109
9.1 Sprite精灵 109
9.1.1图片设置为精灵 109
9.1.2图片切割为多个精灵 110
9.1.3设置Border边界 112
9.1.4 Pivot锚点 112
9.2 Canvas画布 113
9.2.1创建画布 113
9.2.2画布参数 113
9.3 Image图片 116
9.4 RawImage原始图片 119
9.5 Text文本 120
9.5.1 Text参数 120
9.5.2添加阴影 121
9.5.3添加轮廓 122
9.6按钮 122
9.7输入区域 124
9.8开关 125
9.8.1创建开关 125
9.8.2开关组 126
9.9滑动条 128
9.10滚动区域 130
9.10.1实现滚动拖曳 130
9.10.2实现画面裁切 130
9.10.3完整内容 131
9.11滚动条 131
9.12小结 132
9.13习题 132
第10章 数据存储与读取 133
10.1 PlayerPrefs 133
10.1.1整数的存取 133
10.1.2浮点数的存取 133
10.1.3字符串的存取 134
10.1.4其他PlayerPrefs接口 134
10.1.5属性访问器get和set 134
10.1.6属性访问器与PlayerPrefs 134
10.2 JSON 135
10.2.1 JSON数据格式 135
10.2.2数据存储 136
10.2.3数据加密 138
10.3实例——创建游戏角色 140
10.3.1定义数据结构 140
10.3.2数据管理类 140
10.3.3创建界面 143
10.4小结 145
10.5习题 145
第11章 音乐音效 146
11.1基本原理 146
11.2音频片段 147
11.3声源 148
11.4收听者 149
11.5实例——2D音乐音效 149
11.6实例——3D音乐音效 150
11.7混响区域 151
11.8音频混合器 151
11.9音频效果 154
11.10实例——午夜枪手 155
11.11小结 161
11.12习题 161
第12章 光照 162
12.1光照基础 162
12.1.1点光源 162
12.1.2聚光源 163
12.1.3方向光 163
12.1.4区域光 164
12.2光的使用 164
12.3阴影 165
12.3.1开启光的阴影 165
12.3.2阴影技巧 165
12.4渲染模式 167
12.5 GI 167
12.5.1 GI介绍 167
12.5.2 GI使用 168
12.6反射环境 169
12.6.1反射天空盒 170
12.6.2反射天空盒及场景 170
12.7光照探针 173
12.8小结 174
12.9习题 174
第13章 资源的下载与上传 175
13.1下载 175
13.2上传 176
13.3 AssetBundle资源包 178
13.3.1 AssetBundle打包 178
13.3.2 AssetBundle上传 181
13.3.3 AssetBundle下载 182
13.3.4资源包变体 184
13.3.5依赖关系 185
13.3.6 AssetBundle使用建议 188
13.4小结 189
13.5习题 189
第14章 性能分析工具Profiler 190
14.1 Profiler界面 190
14.2连接设备 193
14.3 CPU优化 193
14.3.1控制台日志与预定义标签 193
14.3.2预定义标签 194
14.4渲染优化 197
14.4.1渲染参数 198
14.4.2优化 198
14.5内存优化 201
14.5.1降低资源大小 201
14.5.2释放内存中的资源 202
14.6其他优化经验 202
14.7小结 202
14.8习题 202
第15章 导航系统 203
15.1实现导航系统 203
15.1.1建立场景 203
15.1.2设置NavMesh 203
15.1.3烘焙 204
15.1.4设置导航代理 206
15.2障碍物 208
15.3分离网格链接 208
15.4小结 209
15.5习题 209
第16章 多人游戏 210
16.1 Network 210
16.1.1接口介绍 210
16.1.2基本实例 211
16.2 Network View 212
16.2.1接口介绍 212
16.2.2实例——聊天室 213
16.2.3实例——碰碰乐 218
16.3主服务器 222
16.3.1接口介绍 222
16.3.2实例 223
16.3.3架设主服务器 224
16.4小结 226
16.5习题 226
第17章 高级功能 227
17.1尾径渲染器 227
17.2线段渲染器 229
17.2.1实现 230
17.2.2实例——闪电效果 231
17.3镜头光晕 232
17.4光晕 233
17.5投影仪 233
17.6太阳光束 238
17.7旋转 239
17.8漩涡 239
17.9景深 240
17.10移轴特效 241
17.11模糊 241
17.12动态模糊 242
17.13泛光 242
17.14噪点和刮痕 244
17.15噪点和颗粒 244
17.16抗锯齿 244
17.17卡通渲染 245
17.18移动设备播放开场视频 246
17.19其他功能 247
17.20小结 248
17.21习题 248
第18章 3D游戏实例 249
18.1前期准备 249
18.1.1需求分析 249
18.1.2资源准备 249
18.1.3知识准备 250
18.1.4游戏设计 250
18.2游戏实现 251
18.2.1 UI实现 251
18.2.2关卡场景 263
18.2.3主角实现 264
18.2.4敌人实现 279
18.2.5音频功能 279
18.2.6移动设备支持 280
18.3小结 284
18.4习题 284
第19章 2D游戏基础 285
19.1正交摄像机 285
19.2精灵 285
19.2.1精灵实现 286
19.2.2调整精灵尺寸 286
19.2.3精灵渲染器 287
19.2.4图片导入设置 287
19.2.5精灵编辑 288
19.2.6精灵图集 289
19.3 2D物理系统 291
19.3.1刚体 291
19.3.2碰撞器 292
19.3.3 Joint 2D 295
19.3.4 Constant Force 2D 299
19.3.5 Effector 2D 299
19.4小结 302
19.5习题 302
第20章 2D游戏实例 303
20.1游戏模块 303
20.2管理类的基础类实现 304
20.3游戏项目创建 305
20.4游戏管理类 305
20.5资源管理 305
20.6声音管理 306
20.7特效管理 308
20.8数据保存 310
20.9游戏的界面 314
20.9.1菜单面板 317
20.9.2地图面板 319
20.9.3加载界面 324
20.9.4战斗界面 326
20.9.5消息管理类 329
20.10技能系统 332
20.11小结 339
20.12习题 339