注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络游戏设计Unity3D/2D游戏开发从0到1(第二版)

Unity3D/2D游戏开发从0到1(第二版)

Unity3D/2D游戏开发从0到1(第二版)

定 价:¥99.00

作 者: 刘国柱 著
出版社: 电子工业出版社
丛编项: 游戏研发系列
标 签: 计算机/网络 图形图像 多媒体 游戏开发/多媒体/课件设计

购买这本书可以去


ISBN: 9787121334993 出版时间: 2018-01-01 包装: 平装
开本: 16开 页数: 524 字数:  

内容简介

  本书为第二版,采用Unity 2017。全书分为实战项目篇与开发理论篇进行系统讲解。实战项目篇由浅入深提供四个教学案例:2D小游戏两个和两款3D大型教学案例。通过本篇的认真学习,读者可以达到优秀开发者的水平。开发理论篇,从初学者容易入门的角度把全书分为上、下两篇各15章。上篇完全是为零基础游戏爱好者或者在校大学生所准备,采用“案例化”教学思路,所学知识点与游戏案例紧密结合。下篇是理论进阶篇,主要学习3D数学、3D图形学(3D图形渲染/贴图/PBS材质/Shader)、TimeLine& Cinemachine、Unity2017新导航寻路、项目优化策略、游戏移植与手指触控、对象缓冲池、网络Socket、AssetBundle资源动态加载与AssetBundle框架设计等。

作者简介

  拥有十多年的软件、游戏研发与教学经验,具备深厚语言基础。早年在国内上市企业做研发经理,熟悉企业大型软件运作管理过程、软件架构设计理论。精通与熟悉Unity3D、XNA等3D与2D 游戏开发技术,教学语言思路清晰,循循善诱的教学方法深受广大学子欢迎。

图书目录

项目实战篇
实战项目1:记忆卡牌\t3
1. 策划\t3
2. 场景搭建\t4
3. 游戏核心逻辑\t5
实战项目2:Flappy Bird\t8
1. 策划\t8
2. 场景搭建\t9
3. 主角\t10
4. 道具开发\t12
5. UI界面与游戏周期管理\t15
实战项目3:不夜城跑酷\t17
1. 策划\t17
2. 场景搭建\t19
3. 主角\t21
4. 道具开发\t24
5. 场景与道具的动态生成算法\t31
6. UI界面与游戏周期管理\t34
7. 对象缓冲池管理\t38
实战项目4:生化危机\t41
1. 策划\t41
2. 场景搭建\t45
3. 主角\t47
4. 道具开发\t47
5. UI界面与游戏周期管理\t51
开发理论篇 上篇
第1章 游戏历史与Unity发展概述\t54
1.1 “钱途”无限的游戏开发领域\t54
1.1.1 Unity版本快速迭代升级\t55
1.1.2 Unity技术应用范围\t56
1.1.3 强大的跨平台性\t56
1.2 电子游戏发展史\t57
1.3 游戏引擎与Unity的发展历程\t60
1.3.1 什么是游戏引擎\t60
1.3.2 游戏引擎的功能\t61
1.3.3 为什么需要使用游戏引擎\t61
1.3.4 游戏引擎的发展\t62
1.3.5 Unity 游戏引擎的特点\t62
1.3.6 Unity引擎的主要特性\t63
1.3.7 Unity游戏引擎的发展历史\t64
1.4 Unity下载与安装\t65
1.4.1 Unity下载与安装\t65
1.4.2 Unity的资源商店(Asset Store)\t66
第2章 Unity2017.x 安装与3D模型入门\t67
2.1 Unity 2017.x版本的下载安装\t67
2.2 Unity编辑器界面\t75
2.2.1 掌握Unity 编辑器的布局与调整\t77
2.2.2 了解Unity 编辑器各个重要视图与作用\t78
2.3 3D模型入门操作\t80
2.3.1 3D模型的位移、旋转与缩放\t80
2.3.2 3D模型操作快捷方式\t82
2.3.3 选择3D模型的“正”方向\t82
2.3.4 使用属性窗口进行精确调整\t84
2.4 开发Unity“Hello World”\t85
2.5 本章练习与总结\t88
第3章 3D模型基础\t89
3.1 Unity编辑器进一步讲解\t89
3.1.1 Unity菜单\t89
3.1.2 项目(Project)视图\t93
3.1.3 场景(Scene)视图\t95
3.1.4 视图显示模式\t96
3.1.5 场景视图的查看与导航\t97
3.2 世界、局部与左手坐标系\t98
3.2.1 现实世界的“世界坐标”与“局部坐标”\t98
3.2.2 演示两种坐标的差异\t98
3.2.3 使用脚本方式演示差异\t99
3.2.4 什么是“左手坐标系”\t100
3.2.5 使用控制台(Console)窗口进行代码调试\t100
3.3 脚本知识入门\t101
3.3.1 键盘与鼠标输入代码\t101
3.3.2 环绕旋转\t101
3.4 小项目开发:地球环绕太阳旋转\t101
3.5 本章练习与总结\t105
3.6 案例开发任务\t105
第4章 地形编辑器\t106
4.1 创建基本地形\t106
4.1.1 绘制贴图纹理\t109
4.1.2 制作各种地形\t110
4.1.3 种植树木与花草\t113
4.2 观察虚拟世界\t113
4.3 扩展地形编辑\t115
4.4 本章练习与总结\t116
4.5 案例开发任务\t117
第5章 光源\t118
5.1 概述\t118
5.2 光源的分类与重要参数\t120
5.3 典型光源场景制作\t121
5.4 本章练习与总结\t123
5.5 案例开发任务\t123
第6章 光照烘焙\t124
6.1 概述\t124
6.2 光照烘焙\t125
6.3 反射探针(Reflection Probe)\t132
6.4 光照探头(Light Probe)\t134
6.5 光照预览窗口(Light Explorer)\t137
6.6 本章练习与总结\t138
6.7 案例开发任务\t138
第7章 音频\t139
7.1 概述\t139
7.2 音频剪辑属性\t140
7.3 音频监听与音频源组件\t140
7.4 音频混响器与滤波器组件\t143
7.5 音频混音器(Audio Mixer)\t144
7.6 本章练习与总结\t151
7.7 案例开发任务\t151
第8章 Unity脚本程序设计\t153
8.1 Unity 脚本编辑器介绍\t153
8.1.1 什么是.Net框架\t153
8.1.2 什么是Mono 与MonoDevelop\t154
8.1.3 什么是Visual Studio\t154
8.2 脚本程序基础\t155
8.2.1 创建脚本注意事项\t155
8.2.2 项目工程分层设计\t156
8.2.3 如何更改脚本模板\t157
8.3 Unity重要脚本函数\t157
8.3.1 Unity事件函数\t157
8.3.2 Untiy重要核心类学习\t158
8.3.3 GameObject 类\t158
8.3.4 MonoBehaviour类\t162
8.3.5 Transform类\t165
8.3.6 Time类\t166
8.4 Unity脚本生命周期\t167
8.4.1 Unity事件函数调用顺序\t168
8.4.2 事件函数禁用与启用规律\t169
8.5 Unity伪多线程揭秘\t172
8.6 修改Unity脚本执行顺序\t173
8.7 Unity 重要应用类\t175
8.8 Unity输入管理器\t176
8.9 本章练习与总结\t178
第9章 UI界面开发\t179
9.1 概述\t179
9.2 基础控件\t182
9.2.1 Canvas画布控件\t182
9.2.2 EventSystem控件\t183
9.2.3 Panel 控件\t184
9.2.4 Text控件\t184
9.2.5 Image控件\t185
9.2.6 Button控件\t187
9.2.7 Button事件系统\t189
9.3 Anchor锚点与屏幕自适应\t191
9.4 UGUI高级控件\t193
9.4.1 Toggle控件\t193
9.4.2 Slider控件\t194
9.4.3 Scrollbar控件\t194
9.4.4 ScrollRect复合控件\t195
9.4.5 TabPage标签页面\t197
9.5 UGUI布局管理控件\t199
9.6 本章练习与总结\t202
9.7 案例开发任务\t202
第10章 3D模型与动画制作\t204
10.1 概述\t205
10.2 3DMax软件基本使用\t205
10.3 3D模型尺寸单位设置\t207
10.4 3DMax 模型制作与导出Unity流程\t208
10.5 模型导出丢失贴图问题\t212
10.6 3D文字的制作与动画\t212
10.7 角色Legacy动画\t213
10.8 Animation 动画编辑工具\t216
10.9 自定义资源包的导入与导出\t219
10.10 本章练习与总结\t222
10.11 案例开发任务\t222
第11章 物理学模拟\t223
11.1 概述\t223
11.2 刚体\t223
11.3 物理材质\t227
11.4 脚本控制刚体\t229
11.5 关节系统\t230
11.5.1 铰链关节\t230
11.5.2 弹簧关节\t232
11.5.3 固定关节\t232
11.5.4 角色关节\t233
11.5.5 布料模拟\t235
11.6 物理管理器(Physics Manager)\t237
11.7 本章练习与总结\t238
第12章 碰撞体与触发器\t239
12.1 概述\t239
12.2 碰撞体的分类与作用\t240
12.3 碰撞检测事件函数\t241
12.4 触发检测事件函数\t242
12.5 碰撞过滤\t244
12.6 本章练习与总结\t246
12.7 案例开发任务\t247
第13章 Unity 2D技术\t248
13.1 概述\t248
13.2 项目示例讲解\t248
13.3 Untiy 2D物理引擎\t253
13.3.1 2D刚体\t253
13.3.2 2D碰撞体\t254
13.3.3 2D关节系统\t256
13.4 Unity 2D特效功能\t256
13.4.1 Sprite Mask 功能\t256
13.4.2 精灵效应器组件\t258
13.5 本章练习与总结\t263
13.6 案例开发任务\t263
第14章 协程与调用函数\t264
14.1 协程定义与功能\t264
14.2 调用函数定义与功能\t265
14.3 协程与调用函数区别与适用范围\t266
14.4 本章练习与总结\t267
14.5 案例开发任务\t267
第15章 数据传值技术\t268
15.1 概述\t268
15.2 SendMessage 简单传值\t269
15.3 SendMessage 高级传值\t271
15.4 本章练习与总结\t272
开发理论篇 下篇
第16章 3D数学\t274
16.1 坐标系统\t274
16.2 向量\t279
16.3 本章练习与总结\t287
第17章 3D图形学\t288
17.1 3D图形学概述\t288
17.2 Unity 3D图形渲染\t289
17.2.1 Mesh Fillter网格过滤器\t289
17.2.2 Mesh Renderer网格渲染器\t290
17.2.3 Skinned Mesh Renderer蒙皮网格渲染器\t291
17.3 贴图\t292
17.3.1 二维贴图\t292
17.3.2 视频贴图\t297
17.3.3 渲染贴图\t301
17.4 材质\t302
17.4.1 基于物理着色(PBS)的材质系统\t303
17.4.2 材质球属性\t305
17.4.3 材质球分类\t306
17.5 着色器(Shader)\t313
17.5.1 概述\t313
17.5.2 基本原理:图形渲染管线\t314
17.5.3 着色器的分类与基本结构\t315
17.5.4 固定渲染管线着色器\t318
17.5.5 表面着色器\t320
17.6 本章练习与总结\t327
第18章 TimeLine& Cinemachine技术\t328
18.1 TimeLine时间线\t328
18.2 Cinemachine 虚拟摄像机\t332
18.3 Frame Recorder帧录制器\t335
18.4 本章练习与总结\t336
第19章 粒子系统\t337
19.1 概述\t337
19.2 基本粒子组件属性\t338
19.3 粒子系统示例\t344
19.4 Unity内置粒子系统包\t346
19.5 粒子系统的脚本调用方式\t347
19.6 Line Renderer & Trail Renderer\t348
19.7 本章练习与总结\t351
第20章 Mecanim动画系统\t352
20.1 概述\t352
20.2 制作Mecanim动画系统\t353
20.2.1 步骤一:制作Avatar替身\t353
20.2.2 步骤二:设置动画状态机(Animator Controller)\t356
20.2.3 步骤三:设置动画循环\t359
20.2.4 步骤四:使用代码控制角色动画\t359
20.3 融合术技术\t360
20.4 动画层与身体蒙版\t365
20.5 动画复用技术\t367
20.6 StateMachineBehaviour脚本\t368
20.7 本章练习与总结\t370
第21章 导航寻路\t371
21.1 基本导航寻路\t371
21.2 斜坡与跳跃\t374
21.3 使用Off Mesh Link组件\t375
21.4 网格分层\t376
21.5 Nav Mesh Obstacle组件\t378
21.6 基于组件Nav Mesh的新特性\t380
21.7 Nav Mesh定向3D空间任何方向新特性\t382
21.8 Nav Mesh动态烘焙新特性\t383
21.9 本章练习与总结\t385
第22章 项目研发常用优化策略\t386
22.1 遮挡剔除(Occlusion Culling)\t386
22.2 层级细节(LOD)\t390
22.3 项目调优工具数据分析器(Profiler)\t393
22.4 项目优化策略\t395
22.4.1 项目优化之DrawCall\t395
22.4.2 项目优化之模型与图像方面\t397
22.4.3 项目优化之光照与摄像机方面\t399
22.4.4 项目优化之程序优化方面\t401
22.4.5 项目优化之Unity系统设置方面\t403
22.4.6 项目优化之良好开发与使用习惯\t404
22.5 本章练习与总结\t404
第23章 Unity游戏移植与手指触控识别\t406
23.1 JDK安装与环境参数配置\t406
23.1.1 下载与安装JDK\t406
23.1.2 设置JDK环境\t409
23.2 Android 虚拟机的安装与配置\t412
23.2.1 下载与配置 Android SDK\t412
23.2.2 更新环境变量\t415
23.3 Unity相应配置\t415
23.3.1 Unity配置 Android SDK 路径\t415
23.3.2 发布程序,切换到Android平台\t416
23.3.3 更改默认的产品标示符\t417
23.3.4 输出*.apk 包\t417
23.3.5 真机测试\t418
23.4 手指触控识别\t418
23.4.1 手指触控API\t418
23.4.2 手指触控常见方式\t419
23.5 本章练习与总结\t422
第24章 软件重构思想\t423
24.1 软件重构的重要性\t423
24.2 项目示例\t424
24.3 本章练习与总结\t427
第25章 射线\t428
25.1 射线概述\t428
25.2 项目示例讲解\t429
25.2.1 射击场景开发\t429
25.2.2 角色寻路开发\t430
25.3 本章练习与总结\t431
第26章 数据持久化技术\t432
26.1 PlayerPrefs持久化技术\t432
26.2 XML持久化技术\t434
26.3 本章练习与总结\t439
第27章 预加载与对象缓冲池技术\t440
27.1 概述\t440
27.2 简单对象缓冲池技术\t441
27.3 高级对象缓冲池技术\t445
27.4 本章练习与总结\t451
第28章 网络基础\t452
28.1 网络概述\t452
28.2 多线程技术\t453
28.2.1 多线程的定义\t453
28.2.2 多线程的优先级\t454
28.2.3 多线程的状态控制\t455
28.2.4 多线程的线程同步\t456
28.3 套接字Socket技术\t458
28.3.1 网络基础知识\t458
28.3.2 Socket定义\t459
28.3.3 面向连接的Socket\t459
28.3.4 无连接的Socket\t460
28.3.5 同步Socket\t460
28.3.6 异步Socket\t461
28.4 网络下载WWW类\t464
28.5 本章练习与总结\t466
第29章 AssetBundle资源动态加载\t467
29.1 AssetBundle概述\t467
29.2 创建AssetBundle\t468
29.3 下载AssetBundle\t469
29.4 AssetBundle的加载与卸载\t470
29.5 AssetBundle依赖关系\t472
29.6 本章练习与总结\t472
第30章 AssetBundle框架设计\t473
30.1 AssetBundle框架整体设计\t473
30.2 自动化创建AssetBundle\t475
30.2.1 自动给资源文件添加标记\t475
30.2.2 打包资源且输出路径\t477
30.2.3 删除路径中所有资源\t478
30.3 单一AssetBundle包的加载与管理\t478
30.4 AssetBundle整体管理\t480
30.4.1 读取项目清单文件\t481
30.4.2 AssetBundle关系类\t482
30.4.3 AssetBundle总管理类\t482
30.4.4 多AssetBundle管理类\t483
30.5 本章练习与总结\t484
附录A 全国Unity游戏研发职位笔试/面试真题集锦\t486
附录B Unity开发常见错误与分析\t492
附录C 游戏开发职位简历模板\t494
附录D Unity4.x/5.x/2017.x升级差异总结\t498
附录E Unity特殊文件夹一览表\t501
附录F 游戏开发对C#语言知识点基本要求\t504

本目录推荐