书籍简介:
本书作者结合多年从事游戏应用开发的经验,详细介绍了8款Unity 3D游戏案例的开发。 本书主要内容包括Unity 3D的基础知识、开发环境的搭建及其运行机制,益智休闲类游戏、3D塔防类游戏、3D桌球类游戏、射击类游戏、第三人称射击类游戏、休闲体育类游戏、VR休闲竞技类游戏、多人在线角色扮演游戏的开发。 本书适合有一定基础、有志于游戏开发的读者学习,也可以作为相关培训学校和大专院校相关专业的教学用书。
作者简介:
吴亚峰
毕业于北京邮电大学,后留学澳大利亚卧龙岗大学取得硕士学位。1998年开始从事Java应用的开发,有10多年的Java开发与培训经验。目前主要的研究方向为OpenGL ES、Vulkan、VR/AR、手机游戏。同时为手机游戏、OpenGL ES独立软件开发工程师,现任职于华北理工大学并兼任华北理工大学以升大学生创新实验中心移动及互联网软件工作室负责人。十多年来不但多次指导学生制作手游作品获得多项学科竞赛大奖,还为数十家企业培养了上千名软件开发人员。曾编写过《OpenGL ES 3.x游戏开发(上下卷)》《Unity3D游戏开发标准教程》《Unity 5.x 3D游戏开发技术详解与典型案例》《Unity 4 3D开发实战详解》、《Android应用案例开发大全》(第一版至第四版)、《Android游戏开发大全》(第一版至第四版)等多本畅销技术书籍。2008年初开始关注Android平台下的3D应用开发,并开发出一系列的Android应用程序与3D游戏。
出版时间:
2018年08月
章节目录:
第 1章 Unity 3D基础和开发环境的搭建 1
1.1 Unity 3D基础知识概览 1
1.1.1 初识Unity 3D 1
1.1.2 Unity的诞生及其发展 1
1.1.3 Unity 3D广阔的市场前景 2
1.1.4 独具特色的Unity 3D 3
1.2 开发环境的搭建 8
1.2.1 Unity集成开发环境的安装 8
1.2.2 目标平台的SDK与Unity 3D的集成 11
1.3 本书案例的导入及运行 13
1.4 本章小结 15
第 2章 益智休闲类游戏——火车行动 16
2.1 游戏的开发背景和功能概述 16
2.1.1 游戏背景简介 16
2.1.2 游戏功能简介 17
2.2 游戏的策划和准备工作 18
2.2.1 游戏的策划 18
2.2.2 使用Unity开发游戏前的准备工作 19
2.3 游戏的架构 21
2.3.1 各个场景的简要介绍 21
2.3.2 游戏架构简介 22
2.4 主菜单场景 22
2.4.1 场景的搭建及相关设置 22
2.4.2 各对象的脚本开发及相关设置 27
2.5 游戏场景 33
2.5.1 关卡一游戏场景搭建 33
2.5.2 游戏模型设置及脚本开发 37
2.5.3 游戏UI层的开发 45
2.5.4 关卡二游戏场景搭建 48
2.6 游戏的优化与改进 50
2.7 本章小结 50
第3章 3D塔防类游戏——BN塔防 51
3.1 游戏的开发背景和功能概述 51
3.1.1 游戏背景简介 51
3.1.2 游戏功能简介 52
3.2 游戏的策划和准备工作 54
3.2.1 游戏的策划 54
3.2.2 使用Unity开发游戏前的准备工作 55
3.3 游戏的架构 58
3.3.1 各个场景简介 59
3.3.2 游戏架构简介 59
3.4 玩家设置场景的开发 61
3.4.1 场景的搭建及其相关设置 61
3.4.2 各对象的脚本开发及其相关设置 64
3.5 游戏功能场景的开发 69
3.5.1 场景搭建及其相关设置 70
3.5.2 各对象的脚本开发及相关设置 71
3.6 属性介绍场景的开发 74
3.6.1 英雄属性介绍界面搭建 74
3.6.2 怪物属性介绍界面搭建 75
3.6.3 英雄以及怪物模型创建 76
3.6.4 各对象的脚本开发及相关设置 77
3.7 选关场景的开发 81
3.7.1 场景的搭建及其相关设置 81
3.7.2 各对象的脚本开发及相关设置 82
3.8 关卡场景的开发 83
3.8.1 场景地形的制作 83
3.8.2 摄像机的移动和缩放功能的开发 85
3.8.3 敌人相关功能的开发 87
3.8.4 防御塔功能的开发 93
3.8.5 英雄相关功能的开发 96
3.8.6 技能的开发 99
3.8.7 创建声音管理器 100
3.8.8 场景UI的制作与相关脚本的开发 101
3.8.9 创建游戏控制器 104
3.9 游戏的优化与改进 106
第4章 3D极品桌球 107
4.1 游戏背景和功能概述 107
4.1.1 游戏背景简介 107
4.1.2 游戏功能简介 107
4.2 游戏的策划和准备工作 110
4.2.1 游戏的策划 110
4.2.2 使用Unity开发游戏前的准备工作 110
4.3 游戏的架构 112
4.3.1 各个场景简介 112
4.3.2 游戏框架简介 113
4.4 主菜单界面 114
4.4.1 项目的基本创建 114
4.4.2 脚本的编写与挂载 115
4.5 游戏界面 128
4.5.1 场景的搭建 128
4.5.2 多视角的制作与切换 131
4.5.3 游戏界面脚本的编写 134
4.5.4 功能脚本的编写 141
4.6 游戏的优化与改进 154
第5章 射击类游戏——固守阵线 155
5.1 游戏背景和功能概述 155
5.1.1 游戏背景简介 155
5.1.2 游戏功能简介 155
5.2 游戏的策划及准备工作 158
5.2.1 游戏的策划 158
5.2.2 使用Unity开发游戏前的准备工作 159
5.3 游戏的架构 161
5.3.1 各个场景简介 161
5.3.2 游戏架构简介 162
5.4 主菜单场景 162
5.4.1 场景搭建 163
5.4.2 主摄像机设置及脚本开发 164
5.4.3 主菜单场景中各个界面移动的实现 170
5.5 游戏场景 171
5.5.1 场景搭建 171
5.5.2 主摄像机设置及脚本开发 172
5.5.3 操作界面的创建 173
5.5.4 子弹的创建 177
5.5.5 敌人小兵的创建及脚本开发 179
5.5.6 场景中结点的设置与脚本开发 181
5.5.7 敌人装甲车的创建与脚本开发 182
5.5.8 敌人坦克的创建与脚本开发 186
5.5.9 小地图的制作 188
5.6 游戏的优化与改进 189
第6章 第三人称射击类游戏——海岛危机 190
6.1 游戏背景和功能概述 190
6.1.1 游戏背景简介 190
6.1.2 游戏功能简介 191
6.2 游戏的策划及准备工作 193
6.2.1 游戏的策划 193
6.2.2 使用Unity开发游戏前的准备工作 194
6.3 游戏的架构 197
6.3.1 各个场景简介 197
6.3.2 游戏架构简介 198
6.4 闪屏和主菜单场景 200
6.4.1 闪屏场景的搭建与脚本开发 200
6.4.2 常量类与简单游戏保存功能的开发 203
6.4.3 主菜单场景基本UI的搭建与脚本开发 204
6.4.4 选择关卡界面的搭建与脚本开发 207
6.4.5 信息提示界面的搭建与脚本开发 211
6.4.6 其他部分的搭建 212
6.5 游戏加载场景 214
6.5.1 场景搭建 214
6.5.2 异步加载场景功能的实现与脚本开发 214
6.6 关卡一游戏场景 215
6.6.1 场景搭建 215
6.6.2 主人物模型的搭建及脚本开发 216
6.6.3 虚拟摇杆和摄像机跟随功能及脚本开发 221
6.6.4 游戏提示界面的搭建及脚本开发 225
6.6.5 任务系统和触发器的搭建及脚本开发 226
6.6.6 准星和准星提示信息的搭建及脚本开发 228
6.6.7 邮件界面的搭建及其功能的脚本开发 230
6.7 其他游戏场景 232
6.7.1 游戏CG功能的实现及脚本开发 232
6.7.2 血条和小地图功能及脚本开发 233
6.7.3 怪物的创建及脚本开发 236
6.7.4 船和直升飞机的搭建及脚本开发 239
6.8 游戏的优化与改进 241
第7章 休闲体育类游戏——指尖网球 243
7.1 游戏背景和功能概述 243
7.1.1 游戏背景简介 243
7.1.2 游戏功能简介 244
7.2 游戏的策划及准备工作 245
7.2.1 游戏的策划 245
7.2.2 使用Unity开发游戏前的准备工作 246
7.3 游戏的架构 248
7.3.1 各个场景简介 248
7.3.2 游戏架构简介 249
7.4 主菜单场景 250
7.4.1 场景的搭建及其相关设置 250
7.4.2 各对象的脚本开发及相关设置 254
7.5 单人模式游戏场景 264
7.5.1 场景搭建 264
7.5.2 各对象的脚本开发及相关设置 265
7.6 网络模式游戏场景 283
7.6.1 场景搭建 283
7.6.2 各对象的脚本开发及相关设置 283
7.7 服务器端的开发 288
7.7.1 网络游戏架构简介 288
7.7.2 服务器端简介 289
7.7.3 服务器端的开发 289
7.8 游戏加载场景 290
7.8.1 场景搭建 290
7.8.2 各对象的脚本开发及相关设置 291
7.9 游戏的优化与改进 292
第8章 VR休闲竞技类游戏——Q赛车 293
8.1 游戏背景和功能概述 293
8.1.1 游戏背景简介 293
8.1.2 游戏功能简介 293
8.2 游戏的策划及准备工作 295
8.2.1 游戏的策划 295
8.2.2 使用Unity开发游戏前的准备工作 296
8.3 游戏的架构 297
8.3.1 各个场景的简介 297
8.3.2 游戏架构简介 297
8.4 主菜单场景 298
8.4.1 场景的搭建及其相关设置 298
8.4.2 Gvr Unity SDK下载及使用介绍 300
8.4.3 脚本开发及相关设置 302
8.5 单人模式游戏场景 305
8.5.1 场景搭建 305
8.5.2 游戏场景的初始化脚本 307
8.5.3 赛车控制脚本及其相关设置 308
8.5.4 摄像机控制及暂停脚本开发 309
8.5.5 游戏输赢脚本开发 311
8.5.6 游戏UI对象脚本开发 314
8.5.7 游戏常量类脚本开发 314
8.6 网络模式游戏场景 315
8.6.1 场景搭建 315
8.6.2 脚本开发及相关设置 315
8.7 服务器端的开发 319
8.7.1 网络游戏架构简介 319
8.7.2 服务器端简介 320
8.7.3 服务器端的开发 320
8.8 游戏的优化与改进 322
第9章 多人在线角色扮演游戏——英雄传说 323
9.1 游戏背景和功能概述 323
9.1.1 游戏背景简介 323
9.1.2 游戏功能简介 323
9.2 游戏的策划及准备工作 326
9.2.1 游戏的策划 326
9.2.2 游戏前的准备工作 327
9.3 游戏的架构 333
9.4 网络游戏服务器概述 334
9.4.1 什么是游戏服务器 334
9.4.2 服务器结构 334
9.4.3 序列化协议简介 335
9.4.4 Protocol Buffer的使用 336
9.4.5 游戏服务器的整体架构 338
9.5 游戏服务器线程类详解 338
9.5.1 服务器主线程类——ServerThread 339
9.5.2 服务器代理线程类——ServerAgentThread 339
9.5.3 操作码处理类——OPCodeHandler 343
9.5.4 登录和选人线程类——LogInThread和ChooseRoleThread 344
9.5.5 游戏主场景线程类——MainMapThread 345
9.5.6 副本线程类——DungeonMapThread 347
9.6 游戏服务器动作类详解 351
9.6.1 所有动作的父类——Action 352
9.6.2 登录动作类——LogInAction 352
9.6.3 创建角色动作类——CreateRoleAction 353
9.6.4 选择角色动作类——ChooseRoleResultAction 354
9.6.5 更新角色信息动作类——UpdateRoleDataAction 355
9.6.6 返回主城动作类——BackTOMainMapAction 356
9.6.7 同步动画动作类——BroadCastStateAction 357
9.6.8 创建副本动作类——CreateDungeonAction 357
9.7 登录场景及加载场景的搭建 358
9.7.1 登录场景的搭建及相关设置 359
9.7.2 加载界面场景的搭建 366
9.8 客户端与服务器的连接 367
9.9 选人场景的搭建 373
9.9.1 选人3D场景的搭建 373
9.9.2 UI的开发 378
9.10 主城场景的搭建开发 384
9.10.1 主城中角色移动及NPC功能的开发 384
9.10.2 主城场景UI的开发 389
9.10.3 组队功能的实现 392
9.11 副本场景功能的开发 393
9.12 自动寻路系统 396
9.12.1 地图信息标记点 397
9.12.2 自动寻路代码 399
9.12.3 Java与Lua的交互 403
9.13 游戏AI开发 406
9.13.1 服务器端AI开发 406
9.13.2 客户端AI开发 412
9.14 游戏的优化与改进 418
9.15 本章小结 418
封面图: