注册 登录 进入教材巡展
#
  • #

出版时间:2018年1月

出版社:电子工业出版社

以下为《Unity3D/2D游戏开发从0到1(第二版)》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 电子工业出版社
  • 9787121334993
  • 295112
  • 2018年1月
作者简介

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

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

实战项目1:记忆卡牌 3

1. 策划 3

2. 场景搭建 4

3. 游戏核心逻辑 5

实战项目2:Flappy Bird 8

1. 策划 8

2. 场景搭建 9

3. 主角 10

4. 道具开发 12

5. UI界面与游戏周期管理 15

实战项目3:不夜城跑酷 17

1. 策划 17

2. 场景搭建 19

3. 主角 21

4. 道具开发 24

5. 场景与道具的动态生成算法 31

6. UI界面与游戏周期管理 34

7. 对象缓冲池管理 38

实战项目4:生化危机 41

1. 策划 41

2. 场景搭建 45

3. 主角 47

4. 道具开发 47

5. UI界面与游戏周期管理 51

开发理论篇 上篇

第1章 游戏历史与Unity发展概述 54

1.1 “钱途”无限的游戏开发领域 54

1.1.1 Unity版本快速迭代升级 55

1.1.2 Unity技术应用范围 56

1.1.3 强大的跨平台性 56

1.2 电子游戏发展史 57

1.3 游戏引擎与Unity的发展历程 60

1.3.1 什么是游戏引擎 60

1.3.2 游戏引擎的功能 61

1.3.3 为什么需要使用游戏引擎 61

1.3.4 游戏引擎的发展 62

1.3.5 Unity 游戏引擎的特点 62

1.3.6 Unity引擎的主要特性 63

1.3.7 Unity游戏引擎的发展历史 64

1.4 Unity下载与安装 65

1.4.1 Unity下载与安装 65

1.4.2 Unity的资源商店(Asset Store) 66

第2章 Unity2017.x 安装与3D模型入门 67

2.1 Unity 2017.x版本的下载安装 67

2.2 Unity编辑器界面 75

2.2.1 掌握Unity 编辑器的布局与调整 77

2.2.2 了解Unity 编辑器各个重要视图与作用 78

2.3 3D模型入门操作 80

2.3.1 3D模型的位移、旋转与缩放 80

2.3.2 3D模型操作快捷方式 82

2.3.3 选择3D模型的“正”方向 82

2.3.4 使用属性窗口进行精确调整 84

2.4 开发Unity“Hello World” 85

2.5 本章练习与总结 88

第3章 3D模型基础 89

3.1 Unity编辑器进一步讲解 89

3.1.1 Unity菜单 89

3.1.2 项目(Project)视图 93

3.1.3 场景(Scene)视图 95

3.1.4 视图显示模式 96

3.1.5 场景视图的查看与导航 97

3.2 世界、局部与左手坐标系 98

3.2.1 现实世界的“世界坐标”与“局部坐标” 98

3.2.2 演示两种坐标的差异 98

3.2.3 使用脚本方式演示差异 99

3.2.4 什么是“左手坐标系” 100

3.2.5 使用控制台(Console)窗口进行代码调试 100

3.3 脚本知识入门 101

3.3.1 键盘与鼠标输入代码 101

3.3.2 环绕旋转 101

3.4 小项目开发:地球环绕太阳旋转 101

3.5 本章练习与总结 105

3.6 案例开发任务 105

第4章 地形编辑器 106

4.1 创建基本地形 106

4.1.1 绘制贴图纹理 109

4.1.2 制作各种地形 110

4.1.3 种植树木与花草 113

4.2 观察虚拟世界 113

4.3 扩展地形编辑 115

4.4 本章练习与总结 116

4.5 案例开发任务 117

第5章 光源 118

5.1 概述 118

5.2 光源的分类与重要参数 120

5.3 典型光源场景制作 121

5.4 本章练习与总结 123

5.5 案例开发任务 123

第6章 光照烘焙 124

6.1 概述 124

6.2 光照烘焙 125

6.3 反射探针(Reflection Probe) 132

6.4 光照探头(Light Probe) 134

6.5 光照预览窗口(Light Explorer) 137

6.6 本章练习与总结 138

6.7 案例开发任务 138

第7章 音频 139

7.1 概述 139

7.2 音频剪辑属性 140

7.3 音频监听与音频源组件 140

7.4 音频混响器与滤波器组件 143

7.5 音频混音器(Audio Mixer) 144

7.6 本章练习与总结 151

7.7 案例开发任务 151

第8章 Unity脚本程序设计 153

8.1 Unity 脚本编辑器介绍 153

8.1.1 什么是.Net框架 153

8.1.2 什么是Mono 与MonoDevelop 154

8.1.3 什么是Visual Studio 154

8.2 脚本程序基础 155

8.2.1 创建脚本注意事项 155

8.2.2 项目工程分层设计 156

8.2.3 如何更改脚本模板 157

8.3 Unity重要脚本函数 157

8.3.1 Unity事件函数 157

8.3.2 Untiy重要核心类学习 158

8.3.3 GameObject 类 158

8.3.4 MonoBehaviour类 162

8.3.5 Transform类 165

8.3.6 Time类 166

8.4 Unity脚本生命周期 167

8.4.1 Unity事件函数调用顺序 168

8.4.2 事件函数禁用与启用规律 169

8.5 Unity伪多线程揭秘 172

8.6 修改Unity脚本执行顺序 173

8.7 Unity 重要应用类 175

8.8 Unity输入管理器 176

8.9 本章练习与总结 178

第9章 UI界面开发 179

9.1 概述 179

9.2 基础控件 182

9.2.1 Canvas画布控件 182

9.2.2 EventSystem控件 183

9.2.3 Panel 控件 184

9.2.4 Text控件 184

9.2.5 Image控件 185

9.2.6 Button控件 187

9.2.7 Button事件系统 189

9.3 Anchor锚点与屏幕自适应 191

9.4 UGUI高级控件 193

9.4.1 Toggle控件 193

9.4.2 Slider控件 194

9.4.3 Scrollbar控件 194

9.4.4 ScrollRect复合控件 195

9.4.5 TabPage标签页面 197

9.5 UGUI布局管理控件 199

9.6 本章练习与总结 202

9.7 案例开发任务 202

第10章 3D模型与动画制作 204

10.1 概述 205

10.2 3DMax软件基本使用 205

10.3 3D模型尺寸单位设置 207

10.4 3DMax 模型制作与导出Unity流程 208

10.5 模型导出丢失贴图问题 212

10.6 3D文字的制作与动画 212

10.7 角色Legacy动画 213

10.8 Animation 动画编辑工具 216

10.9 自定义资源包的导入与导出 219

10.10 本章练习与总结 222

10.11 案例开发任务 222

第11章 物理学模拟 223

11.1 概述 223

11.2 刚体 223

11.3 物理材质 227

11.4 脚本控制刚体 229

11.5 关节系统 230

11.5.1 铰链关节 230

11.5.2 弹簧关节 232

11.5.3 固定关节 232

11.5.4 角色关节 233

11.5.5 布料模拟 235

11.6 物理管理器(Physics Manager) 237

11.7 本章练习与总结 238

第12章 碰撞体与触发器 239

12.1 概述 239

12.2 碰撞体的分类与作用 240

12.3 碰撞检测事件函数 241

12.4 触发检测事件函数 242

12.5 碰撞过滤 244

12.6 本章练习与总结 246

12.7 案例开发任务 247



第13章 Unity 2D技术 248

13.1 概述 248

13.2 项目示例讲解 248

13.3 Untiy 2D物理引擎 253

13.3.1 2D刚体 253

13.3.2 2D碰撞体 254

13.3.3 2D关节系统 256

13.4 Unity 2D特效功能 256

13.4.1 Sprite Mask 功能 256

13.4.2 精灵效应器组件 258

13.5 本章练习与总结 263

13.6 案例开发任务 263

第14章 协程与调用函数 264

14.1 协程定义与功能 264

14.2 调用函数定义与功能 265

14.3 协程与调用函数区别与适用范围 266

14.4 本章练习与总结 267

14.5 案例开发任务 267

第15章 数据传值技术 268

15.1 概述 268

15.2 SendMessage 简单传值 269

15.3 SendMessage 高级传值 271

15.4 本章练习与总结 272

开发理论篇 下篇

第16章 3D数学 274

16.1 坐标系统 274

16.2 向量 279

16.3 本章练习与总结 287

第17章 3D图形学 288

17.1 3D图形学概述 288

17.2 Unity 3D图形渲染 289

17.2.1 Mesh Fillter网格过滤器 289

17.2.2 Mesh Renderer网格渲染器 290

17.2.3 Skinned Mesh Renderer蒙皮网格渲染器 291

17.3 贴图 292

17.3.1 二维贴图 292

17.3.2 视频贴图 297

17.3.3 渲染贴图 301

17.4 材质 302

17.4.1 基于物理着色(PBS)的材质系统 303

17.4.2 材质球属性 305

17.4.3 材质球分类 306

17.5 着色器(Shader) 313

17.5.1 概述 313

17.5.2 基本原理:图形渲染管线 314

17.5.3 着色器的分类与基本结构 315

17.5.4 固定渲染管线着色器 318

17.5.5 表面着色器 320

17.6 本章练习与总结 327

第18章 TimeLine& Cinemachine技术 328

18.1 TimeLine时间线 328

18.2 Cinemachine 虚拟摄像机 332

18.3 Frame Recorder帧录制器 335

18.4 本章练习与总结 336

第19章 粒子系统 337

19.1 概述 337

19.2 基本粒子组件属性 338

19.3 粒子系统示例 344

19.4 Unity内置粒子系统包 346

19.5 粒子系统的脚本调用方式 347

19.6 Line Renderer & Trail Renderer 348

19.7 本章练习与总结 351

第20章 Mecanim动画系统 352

20.1 概述 352

20.2 制作Mecanim动画系统 353

20.2.1 步骤一:制作Avatar替身 353

20.2.2 步骤二:设置动画状态机(Animator Controller) 356

20.2.3 步骤三:设置动画循环 359

20.2.4 步骤四:使用代码控制角色动画 359

20.3 融合术技术 360

20.4 动画层与身体蒙版 365

20.5 动画复用技术 367

20.6 StateMachineBehaviour脚本 368

20.7 本章练习与总结 370

第21章 导航寻路 371

21.1 基本导航寻路 371

21.2 斜坡与跳跃 374

21.3 使用Off Mesh Link组件 375

21.4 网格分层 376

21.5 Nav Mesh Obstacle组件 378

21.6 基于组件Nav Mesh的新特性 380

21.7 Nav Mesh定向3D空间任何方向新特性 382

21.8 Nav Mesh动态烘焙新特性 383

21.9 本章练习与总结 385

第22章 项目研发常用优化策略 386

22.1 遮挡剔除(Occlusion Culling) 386

22.2 层级细节(LOD) 390

22.3 项目调优工具数据分析器(Profiler) 393

22.4 项目优化策略 395

22.4.1 项目优化之DrawCall 395

22.4.2 项目优化之模型与图像方面 397

22.4.3 项目优化之光照与摄像机方面 399

22.4.4 项目优化之程序优化方面 401

22.4.5 项目优化之Unity系统设置方面 403

22.4.6 项目优化之良好开发与使用习惯 404

22.5 本章练习与总结 404

第23章 Unity游戏移植与手指触控识别 406

23.1 JDK安装与环境参数配置 406

23.1.1 下载与安装JDK 406

23.1.2 设置JDK环境 409

23.2 Android 虚拟机的安装与配置 412

23.2.1 下载与配置 Android SDK 412

23.2.2 更新环境变量 415

23.3 Unity相应配置 415

23.3.1 Unity配置 Android SDK 路径 415

23.3.2 发布程序,切换到Android平台 416

23.3.3 更改默认的产品标示符 417

23.3.4 输出*.apk 包 417

23.3.5 真机测试 418

23.4 手指触控识别 418

23.4.1 手指触控API 418

23.4.2 手指触控常见方式 419

23.5 本章练习与总结 422

第24章 软件重构思想 423

24.1 软件重构的重要性 423

24.2 项目示例 424

24.3 本章练习与总结 427

第25章 射线 428

25.1 射线概述 428

25.2 项目示例讲解 429

25.2.1 射击场景开发 429

25.2.2 角色寻路开发 430

25.3 本章练习与总结 431

第26章 数据持久化技术 432

26.1 PlayerPrefs持久化技术 432

26.2 XML持久化技术 434

26.3 本章练习与总结 439

第27章 预加载与对象缓冲池技术 440

27.1 概述 440

27.2 简单对象缓冲池技术 441

27.3 高级对象缓冲池技术 445

27.4 本章练习与总结 451

第28章 网络基础 452

28.1 网络概述 452

28.2 多线程技术 453

28.2.1 多线程的定义 453

28.2.2 多线程的优先级 454

28.2.3 多线程的状态控制 455

28.2.4 多线程的线程同步 456

28.3 套接字Socket技术 458

28.3.1 网络基础知识 458

28.3.2 Socket定义 459

28.3.3 面向连接的Socket 459

28.3.4 无连接的Socket 460

28.3.5 同步Socket 460

28.3.6 异步Socket 461

28.4 网络下载WWW类 464

28.5 本章练习与总结 466

第29章 AssetBundle资源动态加载 467

29.1 AssetBundle概述 467

29.2 创建AssetBundle 468

29.3 下载AssetBundle 469

29.4 AssetBundle的加载与卸载 470

29.5 AssetBundle依赖关系 472

29.6 本章练习与总结 472

第30章 AssetBundle框架设计 473

30.1 AssetBundle框架整体设计 473

30.2 自动化创建AssetBundle 475

30.2.1 自动给资源文件添加标记 475

30.2.2 打包资源且输出路径 477

30.2.3 删除路径中所有资源 478

30.3 单一AssetBundle包的加载与管理 478

30.4 AssetBundle整体管理 480

30.4.1 读取项目清单文件 481

30.4.2 AssetBundle关系类 482

30.4.3 AssetBundle总管理类 482

30.4.4 多AssetBundle管理类 483

30.5 本章练习与总结 484

附录A 全国Unity游戏研发职位笔试/面试真题集锦 486

附录B Unity开发常见错误与分析 492

附录C 游戏开发职位简历模板 494

附录D Unity4.x/5.x/2017.x升级差异总结 498

附录E Unity特殊文件夹一览表 501

附录F 游戏开发对C#语言知识点基本要求 504