《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 ...
随机推荐
- 201521123009 《Java程序设计》第6周学习总结
1. 本周学习总结 2. 书面作业 Q1:clone方法 1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么? 用protected修 ...
- 201521123097《Java程序设计》第五周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过? ...
- linux下svn命令大全(转)
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:s ...
- 参考:Python 调试方法
地址:http://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/ 这是Python代码调试技巧,也是我今天从别的地方看到的,然后转载 ...
- Spring - 运行时获取bean(ApplicationContextAware接口)
默认情况下,我们的bean都是单例模式(即从容器初始化到销毁只保持一个实例).当一个bean需要引用另外一个bean,我们往往会通过bean属性的方式通过依赖注入来引用另外一个bean.那么问题就来了 ...
- 【轉】JS,Jquery获取各种屏幕的宽度和高度
Javascript: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.b ...
- 翻译:MariaDB wait/nowait
本文为mariadb官方手册:wait/nowait的译文.原文:https://mariadb.com/kb/en/library/wait-and-nowait/ 从MariaDB 10.3.0开 ...
- Qt下 QString转char*
Qt下面,字符串都用QString,确实给开发者提供了方便.Qt再使用第三方开源库时,由于库的类型基本上都是标准的类型,字符串遇的多的就是Char*类型 Qt再使用第三方开源库时,由于库的类型基本上都 ...
- 几个 Cookie 操作例子的分析
MDN 上提供了操作 Cookie 的若干个例子,也有一个简单的 cookie 框架,今天尝试分析一下,最后是 jquery-cookie 插件的分析. document.cookie 的操作例子 例 ...
- Eclipse连接SQL Server 2008数据库 以及问题总结
Eclipse中使用SQL server 2008数据库 一.准备材料 要能够使用数据库就要有相应的JDBC,所以我们要去Microsoft官网下载 https://www.microsoft.com ...