《Unity3D/2D游戏开发从0到1(第二版本)》 书稿完结总结
前几天,个人著作《Unity3D/2D游戏开发从0到1(第二版)》经过七八个月的技术准备以及近3个月的日夜编写,在十一长假后终于完稿。今天抽出一点时间来,给广大热心小伙伴们汇报一下书籍概况。
17年初,随着Unity5.6以及Unity2017 Beta快速迭代发布,我感觉应该就第一版本做深度改版升级。首先针对广大Unity 初学者、游戏研发人员、高校讲师、培训机构等都做了部分调查,对于收到的建议、吐槽等反馈意见,做了细心记录与针对性更新与改写。书籍采用Unity2017 版本进行教学,在第一版基础之上60%内容按照新版本进行重写。理论篇增加所有Unity2017重要知识点,总体确定如下编写原则: “更新”、“更多”、“更实用”
1: “更新”:
采用最新2017版本进行讲解,其中涉及Unity2017最新的光影效果、光影调试LightExplorer预览技术、强大的影视动画编辑Timeline功能、全新的动态烘焙NavMesh技术等。
2: “更多”:
本版本针对广大Untiy初学者、高校与培训机构反馈意见,对于基础且重要核心章节(例如Unity2D技术)大幅增加理论讲解、核心API总结、最新版本增加的组件与详细使用范例等。针对第一版,在游戏教学案例上增加到了四个项目的详细讲解,且最后两个大型3D游戏,换装了全新的场景与道具素材,以接近上线商业游戏的品质,更具高可玩性与实战性。
3: “更实用”
针对老读者而言,本版本还着重强化与更新了3D图形学、资源动态加载AssetBundle技术的讲解深度与广度。 尤其对于AssetBundle技术,本书还提供了商业级AssetBundle框架封装,不仅针对初学者,对于广大Unity开发人员也具备很高的实用与参考价值。
针对广大高校与培训机构老师意见,对部分章节的讲解顺序与内容做了更加合理的安排,以期达到更佳的学习体验。
最后对于Unity初学者与就业为目的广大学员,书籍附录部分在第一版本基础之上还增加了:《Unity4.x/5.x/2017.x 升级差异总结》、《Unity特殊文件夹一览表》、《游戏开发对C#语言知识点基础要求》等实用化较强的内容。

书籍部分目录结构如下:
实战项目1: 记忆卡牌... 18
实战项目2: Flappy Bird. 23
实战项目3: 不夜城跑酷... 32
1:策划... 32
2:场景搭建... 35
3:主角... 37
4:道具开发... 40
5:场景与道具的动态生成算法... 47
6:UI界面与游戏周期管理... 51
7:对象缓冲池管理... 55
实战项目4: 生化危机... 58
1: 策划... 58
2: 场景搭建... 62
3: 主角... 63
4:道具开发... 64
5: UI界面与游戏周期管理... 67
第1章 游戏历史与Unity发展概述... 70
第2章 Unity2017.x 安装与3D模型入门... 85
第3章 3D模型基础... 110
第4章 地形编辑器... 130
第5章 光源... 146
第6章 光照烘焙... 154
第7章 音频... 173
第8章 Unity脚本程序设计... 187
8.1 Unity 脚本编辑器介绍... 188
8.2 脚本程序基础... 190
8.3 Unity 重要脚本函数... 192
8.4 Unity脚本生命周期... 205
8.5 Unity伪多线程揭秘... 211
8.6 修改Unity脚本执行顺序... 213
8.7 Unity 重要应用类... 215
8.8 Unity 输入管理器... 217
8.9 本章练习与总结... 220
第9章 UI界面开发... 221
9.1 概述... 222
9.2 基础控件... 224
9.3 Anchor锚点与屏幕自适应... 235
9.4 UGUI高级控件... 237
9.5 UGUI布局管理控件... 244
9.6 本章练习与总结... 247
9.7 案例开发任务... 248
第10章 3D模型与动画制作... 249
第11章 物理学模拟... 272
第12章 碰撞体与触发器... 295
第13章 Unity2D技术... 307
13.1 概述... 308
13.2 项目示例讲解... 308
13.3 Untiy2D物理引擎... 313
13.3.1 2D刚体... 313
13.3.2 2D 碰撞体... 314
13.3.3 2D 关节系统... 315
13.4 Unity2D特效功能... 317
13.4.1 Sprite Mask 功能... 317
13.4.2 精灵效应器组件... 319
13.5 本章练习与总结... 324
第14章 协程与调用函数... 325
第15章 数据传值技术... 331
第16章 3D数学... 338
16.1 坐标系统... 339
16.2 向量... 346
16.3 本章练习与总结... 356
第17章 3D图形学... 357
17.1 3D图形学... 358
17.2 Unity 3D图形渲染... 359
17.2.1 Mesh Fillter 网格过滤器... 359
17.2.2 Mesh Renderer 网格渲染器... 359
17.2.3 Skinned Mesh Renderer蒙皮网格渲染器... 361
17.3 贴图... 362
17.3.1 二维贴图... 363
17.3.2 视频贴图... 369
17.3.3 渲染贴图... 373
17.4 材质... 375
17.4.1 基于物理着色(PBS)的材质系统... 375
17.4.2 材质球属性... 377
17.4.3 材质球分类... 378
17.5 着色器(Shader) 385
17.5.1 概述... 385
17.5.2 基本原理:图形渲染管线... 386
17.5.3 着色器的分类与基本结构... 388
17.5.4 固定渲染管线着色器... 391
17.5.5表面着色器... 393
17.6 本章练习与总结... 402
第18章 TimeLine& Cinemachine 技术... 403
18.1 TimeLine 时间线... 404
18.2 Cinemachine 虚拟摄像机... 408
18.3 Frame Recorder 帧录制器... 410
18.4 本章练习与总结... 412
第19章 粒子系统... 413
19.5 粒子系统的脚本调用方式... 424
19.6 LineRenderer & TrailRenderer 426
19.7 本章练习与总结... 429
第20章 Mecanim 动画系统... 430
20.1: 概述... 431
20.2: 制作Mecanim 动画系统... 431
20.3: 融合术技术... 440
20.4: 动画层与身体蒙版... 445
20.5: 动画复用技术... 448
20.6: StateMachineBehaviour脚本... 449
20.7: 本章练习与总结... 451
第21章 导航寻路... 452
21.1 基本导航寻路... 453
21.2斜坡与跳跃... 456
21.3使用Off Mesh Link 组件... 458
21.4 网格分层... 459
21.5 Navmesh Obstacle组件... 461
21.6 基于组件NavMesh新特性... 463
21.7 NavMesh定向3D空间任何方向新特性... 465
21.8 NavMesh动态烘焙新特性... 466
21.9本章练习与总结... 468
第22章 项目研发常用优化策略... 469
22.1 遮挡剔除(Occlusion Culling) 470
22.2 层级细节(LOD)... 474
22.3 项目调优工具数据分析器(Profiler)... 477
22.4 项目优化策略... 479
22.4.1 项目优化之DrawCall 479
22.4.2 项目优化之模型与图像方面... 481
22.4.3 项目优化之光照与摄像机方面... 483
22.4.4 项目优化之程序优化方面... 486
22.4.5 项目优化之Unity系统设置方面... 487
22.4.6 项目优化之良好开发与使用习惯... 488
22.5 本章练习与总结... 489
第23章 Unity 游戏移植与手指触控识别... 490
23.1:JDK 安装与环境参数配置... 491
23.2: Android 虚拟机的安装与配置... 498
23.3: Unity相应配置... 501
23.4: 手指触控识别... 505
23.5本章练习与总结... 509
第24章 软件重构思想... 510
第25章 射线... 516
第26章 数据持久化技术... 522
第27章 预加载与对象缓冲池技术... 531
27.1 概述... 532
27.2 简单对象缓冲池技术... 533
27.3 高级对象缓冲池技术... 538
27.4 本章练习与总结... 544
第28章 网络基础... 545
28.1 网络概述... 546
28.2 多线程技术... 546
28.3 套接字Socket技术... 552
28.4 网络下载WWW类... 559
28.5 本章练习与总结... 561
第29章 AssetBundle资源动态加载... 562
29.1 AssetBundle概述... 563
29.2 创建AssetBundle. 563
29.3 下载AssetBundle. 564
29.4 AssetBundle的加载与卸载... 566
29.5 AssetBundle依赖关系... 567
29.6 本章练习与总结... 568
第30章 AssetBundle框架设计... 569
30.1 AssetBundle框架整体设计... 570
30.2 自动化创建AssetBundle. 572
30.2.1 自动给资源文件添加标记... 572
30.2.2 打包资源且输出路径... 574
30.2.3 删除路径中所有资源... 575
30.3 单一AssetBundle包的加载与管理... 576
30.4 AssetBundle整体管理... 578
30.4.1:读取项目清单文件... 578
30.4.1: AssetBundle关系类... 579
30.4.3: AssetBundle总管理类... 580
30.4.4: 多AssetBundle管理类... 581
30.5 本章练习与总结... 583
附录A 全国Unity游戏研发职位笔试面试真题集锦... 584
附录B Unity开发常见错误与分析... 589
附录C 游戏开发职位简历模板... 591
附录D Unity4.x/5.x/2017.x升级差异总结... 596
附录E Unity特殊文件夹一览表... 599
附录F 游戏开发对C#语言知识点基本要求... 601
笔者估算,本书籍大约2018年1月份可以面市发行,到时大家多给支持一下奥 :)
IT技术发展日新月异,相信Unity技术会发展的越来越好。可能两三年之后Unity2019、2020….版本的推出,又会促使本书籍第三版本的编写与发行。最后谢谢广大小伙伴们的关心与爱戴。马上双十一了,大家可以多围观下个人视频教学课程。谢谢!
《Unity3D/2D游戏开发从0到1(第二版本)》 书稿完结总结的更多相关文章
- 关于《Unity3D/2D游戏开发从0到1》书籍再版说明
关于<Unity3D/2D游戏开发从0到1>第一版本在2015年7月1日全国发行,累计得到不少国内高校教师.培训机构的好评.但是由于Unity官方对于技术不断的升级与版本的快速迭代,基于U ...
- 《Unity3D/2D游戏开发从0到1》正式出版发行
<Unity3D/2D游戏开发从0到1>正式出版发行 去年个人编写的Unity书籍正式在2015年7月正式发行,现在补充介绍一下个人著作.书籍信息: 书籍的名称: <Uni ...
- Unity 2D游戏开发教程之精灵的死亡和重生
Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...
- Unity 2D游戏开发教程之摄像头追踪功能
Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...
- Unity 2D游戏开发教程之使用脚本实现游戏逻辑
Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...
- Unity 2D游戏开发教程之游戏精灵的开火状态
Unity 2D游戏开发教程之游戏精灵的开火状态 精灵的开火状态 “开火”就是发射子弹的意思,在战争类型的电影或者电视剧中,主角们就爱这么说!本节打算为精灵添加发射子弹的能力.因为本游戏在后面会引入敌 ...
- Unity 2D游戏开发教程之游戏中精灵的跳跃状态
Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...
- Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏
Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏 即使是如今,非常多初学游戏开发的同学.在谈到Unity的时候.依旧会觉得Unity仅仅能用于制作3D游戏的. 实际上.Unity在2013 ...
- Phaser是一款专门用于桌面及移动HTML5 2D游戏开发的开源免费框架
Phaser是一款专门用于桌面及移动HTML5 2D游戏开发的开源免费框架,提供JavaScript和TypeScript双重支持,内置游戏对象的物理属性,采用Pixi.js引擎以加快Canvas和W ...
随机推荐
- 戴建钊 201521123023《Java程序设计》第2周学习总结
1. 本周学习总结 (1)String类:字符串连接"+",以前觉得方便但不知其原理,所以在有大量修改字符串操作的时候用得不亦乐乎,既浪费内存,又减缓效率.现在知道用Stringb ...
- 201521123007《Java程序设计》第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 补充上周异常 异常堆栈追踪:获得异常发生的根源 创建自己的异常 自定义异常类不是由Java系统监测到的异常, ...
- 201521123079《java程序设计》第13周学习总结
1. 本周学习总结 1.以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. (1)netassist可以用来链接IP端口 (2)accept方法可以用来监听端口,当没有客户端连接 ...
- request.getParameter()获取URL中文参数乱码的解决办法
这个问题耽误好长时间,URL传中文参数出现乱码,就算首次使用request接收就添加 request.setCharacterEncoding("UTf-8"); 依然报错不误. ...
- SpringMVC 构建Restful风格 及问题处理
基本的请求URL: /person/{id} GET 得到id的person /person POST 新增person /person/{id} PUT 更新id的person / ...
- 25个最基本的JavaScript面试问题及答案
1.使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个陷阱? 尽管 typeof bar === "objec ...
- Spring - bean的依赖关系(depends-on属性)
depends-on是bean标签的属性之一,表示一个bean对其他bean的依赖关系.乍一想,不是有ref吗?其实还是有区别的,<ref/>标签是一个bean对其他bean的引用,而de ...
- GitHub开源:升讯威微信营销系统(第三方微信平台)完整源代码
GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction 升讯威微信营销系统开发实践系列升讯威微信营销系统开发实践:(1)功能设计与架构设 ...
- 我的Java设计模式-工厂方法模式
女朋友dodo闹脾气,气势汹汹的说"我要吃雪糕".笔者心里啊乐滋滋的,一支雪糕就能哄回来,不亦乐乎?! 但是,雪糕买回来了,她竟然说"不想吃雪糕了,突然想吃披萨" ...
- java ee Servlet 开发框架分享
大家好! 这里分享一下javaEE Servlet开发框架! 1.首先是POST和GET入口以及接收处理文件 package com.sl.imps; import java.io.IOExcepti ...