注重体验与质量的电子书资源下载网站
分类于: 人工智能 设计
简介
Unity 5权威讲解 豆 0.0分
资源最后更新于 2020-09-23 15:11:27
作者:[韩] 李在贤
译者:孔雪玲
出版社:人民邮电出版社
出版日期:2016-01
ISBN:9787115436368
文件格式: pdf
标签: Unity Unity5 游戏 C# 游戏设计 游戏开发
简介· · · · · ·
本书以Unity 5最新版本为基础,与读者一起制作第三人称射击游戏(TPS),同时介绍游戏开发必备的技巧和技术。通过深入浅出的讲解,帮助没有Unity开发经验的读者掌握Unity游戏开发框架;对刚结束初级阶段学习的读者,通过介绍各种实用性强的效果和实战技巧,帮助其积累实操经验,进阶为中级学习者。
示例脚本均使用C#编写而成,涵盖主人公3D模型的输出、移动逻辑、枪支发射逻辑和冲突判断等基础内容,以及利用有限状态机(FSM)实现敌对角色(NPC)的人工智能高级开发技巧。通过实操讲解使用导航网格自动寻路实现游戏开发时必备的跟踪算法、枪口火焰(Muzzle Flash)、血迹效果(Blood Effect)、Ragdoll、Raycast、触摸移动逻辑等。最后通过第三人称射击游戏的制作详细介绍网游开发必备技巧。
目录
第1章 Unity 5简介 1
1.1 Unity 3D游戏引擎的诞生 2
1.2 Unity 5的优势 2
1.2.1 支持多平台 2
1.2.2 集成开发环境 3
1.2.3 所有功能免费 4
1.2.4 中间件内建 5
1.2.5 开放社区 5
1.2.6 资源商店 6
1.3 使用Unity制作的游戏 7
1.4 下载Unity 9
1.4.1 安装Unity 10
1.4.2 选择Unity许可 11
1.4.3 注册并登录Unity 12
1.5 Unity界面 13
1.5.1 视图 16
1.5.2 工具栏 27
1.5.3 设置快捷键 34
1.6 小结 34
第2章 准备游戏开发 35
2.1 开发的游戏以及开发顺序 36
2.2 新建项目 36
2.3 设置Unity IDE 37
2.4 系统管理项目视图 39
2.5 导入角色模型 39
2.6 创建资源商店账号 42
2.7 从项目视图访问资源商店 44
2.8 从资源商店下载资源 45
2.9 小结 48
第3章 制作游戏场景 49
3.1 3D模型 50
3.2 纹理 51
3.3 材质 53
3.4 应用纹理 54
3.5 着色器以及基于物理的着色 58
3.5.1 渲染模式 59
3.5.2 反照率 59
3.5.3 金属 59
3.5.4 法线贴图 59
3.5.5 高度图 60
3.5.6 遮挡贴图 60
3.5.7 放射 61
3.5.8 细节遮蔽 61
3.6 表现地面阴影——使用法线贴图 61
3.7 预设 62
3.8 用预设制作墙体 64
3.9 光照 68
3.9.1 平行光 68
3.9.2 点光源 69
3.9.3 聚光灯 69
3.9.4 区域光 70
3.10 天空的表现方法 71
3.10.1 六面天空盒 72
3.10.2 程序天空盒 74
3.10.3 立方图天空盒 76
3.11 小结 76
第4章 制作主人公角色 77
4.1 空游戏对象 78
4.2 导入3D模型并设置选项 79
4.3 组件 80
4.4 生成脚本 81
4.5 下载键盘输入值 84
4.6 角色移动 87
4.6.1 处理组件缓存 88
4.6.2 游戏对象的移动 89
4.6.3 Translate函数 90
4.7 单位向量 91
4.8 角色旋转:Rotate 94
4.9 摄像机追踪:Follow Cam 95
4.10 Legacy动画系统 98
4.11 动画片段 99
4.12 动画控件 104
4.13 动画合成 107
4.14 实时阴影 108
4.15 运用投影器制作阴影 111
4.16 运用平面网格制作阴影 115
4.17 小结 117
第5章 制作子弹发射效果 119
5.1 准备子弹模型 120
5.2 Rigidbody组件 121
5.3 设置物理引擎属性:Physics Manager 124
5.4 Collider组件 125
5.4.1 Box Collider 125
5.4.2 Sphere Collider 125
5.4.3 Capsule Collider 126
5.4.4 Mesh Collider 126
5.4.5 Wheel Collider 127
5.4.6 Terrain Collider 128
5.5 碰撞感知条件 128
5.6 碰撞事件 130
5.7 Tag应用 132
5.8 子弹发射逻辑 135
5.9 制作子弹发射轨迹:Trail Renderer 140
5.10 应用粒子系统 145
5.11 制作爆炸效果并设置爆炸威力 150
5.12 随机使用纹理 155
5.13 声音:AudioSource与AudioListener 157
5.14 枪口火焰效果:Muzzle Flash 164
5.15 小结 170
第6章 制作敌对角色 171
6.1 Mecanim动画系统 172
6.2 导入怪兽3D模型 173
6.3 转换为Mecanim动画 173
6.4 动画控制器 177
6.5 导航:怪兽追击例程 183
6.5.1 生成导航网格并烘焙 184
6.5.2 Nav Mesh Agent 185
6.6 实现人工智能 188
6.7 怪兽攻击例程 197
6.8 怪兽被袭时的反应 199
6.9 血迹效果 203
6.10 贴图:地面上的血迹效果 206
6.11 赋予怪兽攻击技能 211
6.12 特定层之间的碰撞感知 215
6.13 优化Mecanim动画角色的骨骼结构 218
6.14 怪兽停止攻击:Tag 220
6.15 怪兽停止攻击:Delegate、Event 224
6.16 怪兽的死亡处理 228
6.17 小结 235
第7章 Unity UI 237
7.1 Canvas对象 238
7.1.1 EventSystem对象 239
7.1.2 Canvas组件 240
7.2 Rect Transform组件 244
7.3 anchoredPosition属性 252
7.4 Image组件 254
7.4.1 Simple 256
7.4.2 Sliced 256
7.4.3 Tiled 258
7.4.4 Filed 258
7.5 RawImage 组件 259
7.6 Button组件 260
7.7 Text组件 271
7.8 Scroll Rect组件 272
7.8.1 Content属性 275
7.8.2 Mask组件 276
7.9 制作游戏分数UI 277
7.10 制作生命条 285
7.11 小结 289
第8章 游戏管理器 291
8.1 怪兽出现逻辑 292
8.2 访问游戏管理器 296
8.3 单例模式 298
8.4 对象池 300
8.5 共享函数:声音处理 308
8.6 小结 311
第9章 灵活运用射线投射 313
9.1 射线投射 314
9.2 油桶爆炸 319
9.3 实现激光束 322
第10章 导航仪高级技巧 329
10.1 动态障碍物 330
10.2 分离网格链接 333
10.3 用户自定义生成分离网格链接 335
第11章 光照贴图、灯光探测器 337
11.1 光照 338
11.1.1 Generate Lightmap UVs 选项 338
11.1.2 Lightmap Static标记 338
11.1.3 光照视图 339
11.1.4 准备烘焙光照的过程 341
11.1.5 Auto选项 342
11.1.6 构建光照贴图 342
11.1.7 Area Light 345
11.2 灯光探测器 346
11.2.1 Light Probe Group 347
11.2.2 Anchor Override 350
11.3 小结 351
第12章 场景分离与合并 353
12.1 场景分离 354
12.2 场景合并 357
第13章 Unity内置网络游戏 361
13.1 网络游戏的定义 362
13.2 网络游戏的物理结构 362
13.3 网络通信协议 363
13.4 Unity内置网络功能 363
13.4.1 网络视图 364
13.4.2 状态同步 364
13.4.3 远程过程调用 365
13.5 Unity网络游戏步骤 366
13.5.1 游戏服务器初始化 366
13.5.2 客户端游戏连接 367
13.5.3 各游戏端点之间的通信 368
13.6 开发网络游戏 368
13.6.1 生成并初始化项目 369
13.6.2 场景制作 369
13.6.3 制作Player 371
13.6.4 Character Controller移动逻辑 371
13.6.5 制作网络管理器 373
13.6.6 构建可执行文件 374
13.6.7 查看连接网络的用户数量 377
13.6.8 制作网络玩家 380
13.6.9 摄像机追踪逻辑 383
13.6.10 平滑的同步处理(OnSerializeNetworkView) 387
13.6.11 发射例程(调用RPC) 392
13.6.12 动画同步 399
13.6.13 探测子弹的碰撞 405
13.6.14 死亡和复活处理 406
13.6.15 终止连接的相关处理 414
13.7 小结 415
第14章 使用Photon Cloud制作网络游戏 417
14.1 第二代Unity网络游戏引擎UNET 418
14.2 第三方网络游戏引擎 418
14.3 PhotonNetwork游戏引擎 418
14.3.1 Photon Server与Photon Cloud 419
14.3.2 加入会员 419
14.4 制作坦克大战游戏 421
14.4.1 坦克移动逻辑 422
14.4.2 履带动画 424
14.4.3 设置摄像机追踪逻辑与摄像机位置 427
14.4.4 旋转炮塔 428
14.4.5 调整炮身角度 431
14.4.6 建立炮弹预设和发射逻辑 432
14.4.7 炮弹发射音效 438
14.5 安装Photon Unity Networking插件 439
14.6 将坦克游戏更改为Photon Cloud版本 441
14.6.1 连接Photon Cloud 442
14.6.2 随机配对 444
14.6.3 制作房间 445
14.6.4 Photon View 447
14.6.5 动态生成坦克 448
14.6.6 构建游戏并测试连接 451
14.6.7 控制自己的坦克 453
14.6.8 平滑移动和旋转处理 454
14.6.9 同步炮塔与炮身 458
14.6.10 发射炮弹 463
14.6.11 坦克被击中时的处理及复活 465
14.7 制作游戏大厅 469
14.7.1 制作大厅场景 469
14.7.2 制作登录UI 471
14.7.3 进入游戏房间 479
14.7.4 制作坦克HUD 484
14.7.5 创建并进入房间 492
14.7.6 构建房间目录UI 497
14.7.7 接收房间列表 504
14.7.8 动态增加按钮事件 516
14.8 战地细节功能 520
14.8.1 显示房间内的玩家数 520
14.8.2 退出房间 523
14.8.3 显示连接日志 525
14.8.4 事件钩子 530
14.9 评分并显示 534
14.10 在Unity中连接数据库 547
14.10.1 JSON 547
14.10.2 SimpleJSON 549
14.10.3 将分数信息保存到数据库 551
14.10.4 从数据库获取排名信息 554
14.11 小结 557
第15章 提升游戏真实感 559
15.1 布娃娃系统 560
15.1.1 创建项目并下载资源 560
15.1.2 制作舞台 561
15.1.3 生成3D模型的布娃娃系统 562
15.2 触屏 571
15.2.1 ScreenPointToRay函数 571
15.2.2 Touch类 574
15.2.3 Unity Remote4 577
15.3 通过触屏移动 579
15.4 小结 582
附录 数据库 583
1.数据库和数据库管理系统 584
2.数据库服务器 584
3. SQL 584
4. DBMS的数据管理 584
5.数据表 585
6.列与行 585
7. SQL 586
1.1 Unity 3D游戏引擎的诞生 2
1.2 Unity 5的优势 2
1.2.1 支持多平台 2
1.2.2 集成开发环境 3
1.2.3 所有功能免费 4
1.2.4 中间件内建 5
1.2.5 开放社区 5
1.2.6 资源商店 6
1.3 使用Unity制作的游戏 7
1.4 下载Unity 9
1.4.1 安装Unity 10
1.4.2 选择Unity许可 11
1.4.3 注册并登录Unity 12
1.5 Unity界面 13
1.5.1 视图 16
1.5.2 工具栏 27
1.5.3 设置快捷键 34
1.6 小结 34
第2章 准备游戏开发 35
2.1 开发的游戏以及开发顺序 36
2.2 新建项目 36
2.3 设置Unity IDE 37
2.4 系统管理项目视图 39
2.5 导入角色模型 39
2.6 创建资源商店账号 42
2.7 从项目视图访问资源商店 44
2.8 从资源商店下载资源 45
2.9 小结 48
第3章 制作游戏场景 49
3.1 3D模型 50
3.2 纹理 51
3.3 材质 53
3.4 应用纹理 54
3.5 着色器以及基于物理的着色 58
3.5.1 渲染模式 59
3.5.2 反照率 59
3.5.3 金属 59
3.5.4 法线贴图 59
3.5.5 高度图 60
3.5.6 遮挡贴图 60
3.5.7 放射 61
3.5.8 细节遮蔽 61
3.6 表现地面阴影——使用法线贴图 61
3.7 预设 62
3.8 用预设制作墙体 64
3.9 光照 68
3.9.1 平行光 68
3.9.2 点光源 69
3.9.3 聚光灯 69
3.9.4 区域光 70
3.10 天空的表现方法 71
3.10.1 六面天空盒 72
3.10.2 程序天空盒 74
3.10.3 立方图天空盒 76
3.11 小结 76
第4章 制作主人公角色 77
4.1 空游戏对象 78
4.2 导入3D模型并设置选项 79
4.3 组件 80
4.4 生成脚本 81
4.5 下载键盘输入值 84
4.6 角色移动 87
4.6.1 处理组件缓存 88
4.6.2 游戏对象的移动 89
4.6.3 Translate函数 90
4.7 单位向量 91
4.8 角色旋转:Rotate 94
4.9 摄像机追踪:Follow Cam 95
4.10 Legacy动画系统 98
4.11 动画片段 99
4.12 动画控件 104
4.13 动画合成 107
4.14 实时阴影 108
4.15 运用投影器制作阴影 111
4.16 运用平面网格制作阴影 115
4.17 小结 117
第5章 制作子弹发射效果 119
5.1 准备子弹模型 120
5.2 Rigidbody组件 121
5.3 设置物理引擎属性:Physics Manager 124
5.4 Collider组件 125
5.4.1 Box Collider 125
5.4.2 Sphere Collider 125
5.4.3 Capsule Collider 126
5.4.4 Mesh Collider 126
5.4.5 Wheel Collider 127
5.4.6 Terrain Collider 128
5.5 碰撞感知条件 128
5.6 碰撞事件 130
5.7 Tag应用 132
5.8 子弹发射逻辑 135
5.9 制作子弹发射轨迹:Trail Renderer 140
5.10 应用粒子系统 145
5.11 制作爆炸效果并设置爆炸威力 150
5.12 随机使用纹理 155
5.13 声音:AudioSource与AudioListener 157
5.14 枪口火焰效果:Muzzle Flash 164
5.15 小结 170
第6章 制作敌对角色 171
6.1 Mecanim动画系统 172
6.2 导入怪兽3D模型 173
6.3 转换为Mecanim动画 173
6.4 动画控制器 177
6.5 导航:怪兽追击例程 183
6.5.1 生成导航网格并烘焙 184
6.5.2 Nav Mesh Agent 185
6.6 实现人工智能 188
6.7 怪兽攻击例程 197
6.8 怪兽被袭时的反应 199
6.9 血迹效果 203
6.10 贴图:地面上的血迹效果 206
6.11 赋予怪兽攻击技能 211
6.12 特定层之间的碰撞感知 215
6.13 优化Mecanim动画角色的骨骼结构 218
6.14 怪兽停止攻击:Tag 220
6.15 怪兽停止攻击:Delegate、Event 224
6.16 怪兽的死亡处理 228
6.17 小结 235
第7章 Unity UI 237
7.1 Canvas对象 238
7.1.1 EventSystem对象 239
7.1.2 Canvas组件 240
7.2 Rect Transform组件 244
7.3 anchoredPosition属性 252
7.4 Image组件 254
7.4.1 Simple 256
7.4.2 Sliced 256
7.4.3 Tiled 258
7.4.4 Filed 258
7.5 RawImage 组件 259
7.6 Button组件 260
7.7 Text组件 271
7.8 Scroll Rect组件 272
7.8.1 Content属性 275
7.8.2 Mask组件 276
7.9 制作游戏分数UI 277
7.10 制作生命条 285
7.11 小结 289
第8章 游戏管理器 291
8.1 怪兽出现逻辑 292
8.2 访问游戏管理器 296
8.3 单例模式 298
8.4 对象池 300
8.5 共享函数:声音处理 308
8.6 小结 311
第9章 灵活运用射线投射 313
9.1 射线投射 314
9.2 油桶爆炸 319
9.3 实现激光束 322
第10章 导航仪高级技巧 329
10.1 动态障碍物 330
10.2 分离网格链接 333
10.3 用户自定义生成分离网格链接 335
第11章 光照贴图、灯光探测器 337
11.1 光照 338
11.1.1 Generate Lightmap UVs 选项 338
11.1.2 Lightmap Static标记 338
11.1.3 光照视图 339
11.1.4 准备烘焙光照的过程 341
11.1.5 Auto选项 342
11.1.6 构建光照贴图 342
11.1.7 Area Light 345
11.2 灯光探测器 346
11.2.1 Light Probe Group 347
11.2.2 Anchor Override 350
11.3 小结 351
第12章 场景分离与合并 353
12.1 场景分离 354
12.2 场景合并 357
第13章 Unity内置网络游戏 361
13.1 网络游戏的定义 362
13.2 网络游戏的物理结构 362
13.3 网络通信协议 363
13.4 Unity内置网络功能 363
13.4.1 网络视图 364
13.4.2 状态同步 364
13.4.3 远程过程调用 365
13.5 Unity网络游戏步骤 366
13.5.1 游戏服务器初始化 366
13.5.2 客户端游戏连接 367
13.5.3 各游戏端点之间的通信 368
13.6 开发网络游戏 368
13.6.1 生成并初始化项目 369
13.6.2 场景制作 369
13.6.3 制作Player 371
13.6.4 Character Controller移动逻辑 371
13.6.5 制作网络管理器 373
13.6.6 构建可执行文件 374
13.6.7 查看连接网络的用户数量 377
13.6.8 制作网络玩家 380
13.6.9 摄像机追踪逻辑 383
13.6.10 平滑的同步处理(OnSerializeNetworkView) 387
13.6.11 发射例程(调用RPC) 392
13.6.12 动画同步 399
13.6.13 探测子弹的碰撞 405
13.6.14 死亡和复活处理 406
13.6.15 终止连接的相关处理 414
13.7 小结 415
第14章 使用Photon Cloud制作网络游戏 417
14.1 第二代Unity网络游戏引擎UNET 418
14.2 第三方网络游戏引擎 418
14.3 PhotonNetwork游戏引擎 418
14.3.1 Photon Server与Photon Cloud 419
14.3.2 加入会员 419
14.4 制作坦克大战游戏 421
14.4.1 坦克移动逻辑 422
14.4.2 履带动画 424
14.4.3 设置摄像机追踪逻辑与摄像机位置 427
14.4.4 旋转炮塔 428
14.4.5 调整炮身角度 431
14.4.6 建立炮弹预设和发射逻辑 432
14.4.7 炮弹发射音效 438
14.5 安装Photon Unity Networking插件 439
14.6 将坦克游戏更改为Photon Cloud版本 441
14.6.1 连接Photon Cloud 442
14.6.2 随机配对 444
14.6.3 制作房间 445
14.6.4 Photon View 447
14.6.5 动态生成坦克 448
14.6.6 构建游戏并测试连接 451
14.6.7 控制自己的坦克 453
14.6.8 平滑移动和旋转处理 454
14.6.9 同步炮塔与炮身 458
14.6.10 发射炮弹 463
14.6.11 坦克被击中时的处理及复活 465
14.7 制作游戏大厅 469
14.7.1 制作大厅场景 469
14.7.2 制作登录UI 471
14.7.3 进入游戏房间 479
14.7.4 制作坦克HUD 484
14.7.5 创建并进入房间 492
14.7.6 构建房间目录UI 497
14.7.7 接收房间列表 504
14.7.8 动态增加按钮事件 516
14.8 战地细节功能 520
14.8.1 显示房间内的玩家数 520
14.8.2 退出房间 523
14.8.3 显示连接日志 525
14.8.4 事件钩子 530
14.9 评分并显示 534
14.10 在Unity中连接数据库 547
14.10.1 JSON 547
14.10.2 SimpleJSON 549
14.10.3 将分数信息保存到数据库 551
14.10.4 从数据库获取排名信息 554
14.11 小结 557
第15章 提升游戏真实感 559
15.1 布娃娃系统 560
15.1.1 创建项目并下载资源 560
15.1.2 制作舞台 561
15.1.3 生成3D模型的布娃娃系统 562
15.2 触屏 571
15.2.1 ScreenPointToRay函数 571
15.2.2 Touch类 574
15.2.3 Unity Remote4 577
15.3 通过触屏移动 579
15.4 小结 582
附录 数据库 583
1.数据库和数据库管理系统 584
2.数据库服务器 584
3. SQL 584
4. DBMS的数据管理 584
5.数据表 585
6.列与行 585
7. SQL 586