前几天,个人著作《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(第二版本)》 书稿完结总结的更多相关文章

  1. 关于《Unity3D/2D游戏开发从0到1》书籍再版说明

    关于<Unity3D/2D游戏开发从0到1>第一版本在2015年7月1日全国发行,累计得到不少国内高校教师.培训机构的好评.但是由于Unity官方对于技术不断的升级与版本的快速迭代,基于U ...

  2. 《Unity3D/2D游戏开发从0到1》正式出版发行

    <Unity3D/2D游戏开发从0到1>正式出版发行 去年个人编写的Unity书籍正式在2015年7月正式发行,现在补充介绍一下个人著作.书籍信息:      书籍的名称: <Uni ...

  3. Unity 2D游戏开发教程之精灵的死亡和重生

    Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...

  4. Unity 2D游戏开发教程之摄像头追踪功能

    Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...

  5. Unity 2D游戏开发教程之使用脚本实现游戏逻辑

    Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...

  6. Unity 2D游戏开发教程之游戏精灵的开火状态

    Unity 2D游戏开发教程之游戏精灵的开火状态 精灵的开火状态 “开火”就是发射子弹的意思,在战争类型的电影或者电视剧中,主角们就爱这么说!本节打算为精灵添加发射子弹的能力.因为本游戏在后面会引入敌 ...

  7. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  8. Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏

    Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏 即使是如今,非常多初学游戏开发的同学.在谈到Unity的时候.依旧会觉得Unity仅仅能用于制作3D游戏的. 实际上.Unity在2013 ...

  9. Phaser是一款专门用于桌面及移动HTML5 2D游戏开发的开源免费框架

    Phaser是一款专门用于桌面及移动HTML5 2D游戏开发的开源免费框架,提供JavaScript和TypeScript双重支持,内置游戏对象的物理属性,采用Pixi.js引擎以加快Canvas和W ...

随机推荐

  1. 201521123009 《Java程序设计》第6周学习总结

    1. 本周学习总结 2. 书面作业 Q1:clone方法 1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么? 用protected修 ...

  2. 201521123097《Java程序设计》第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过? ...

  3. linux下svn命令大全(转)

    1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:s ...

  4. 参考:Python 调试方法

    地址:http://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/ 这是Python代码调试技巧,也是我今天从别的地方看到的,然后转载 ...

  5. Spring - 运行时获取bean(ApplicationContextAware接口)

    默认情况下,我们的bean都是单例模式(即从容器初始化到销毁只保持一个实例).当一个bean需要引用另外一个bean,我们往往会通过bean属性的方式通过依赖注入来引用另外一个bean.那么问题就来了 ...

  6. 【轉】JS,Jquery获取各种屏幕的宽度和高度

    Javascript: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.b ...

  7. 翻译:MariaDB wait/nowait

    本文为mariadb官方手册:wait/nowait的译文.原文:https://mariadb.com/kb/en/library/wait-and-nowait/ 从MariaDB 10.3.0开 ...

  8. Qt下 QString转char*

    Qt下面,字符串都用QString,确实给开发者提供了方便.Qt再使用第三方开源库时,由于库的类型基本上都是标准的类型,字符串遇的多的就是Char*类型 Qt再使用第三方开源库时,由于库的类型基本上都 ...

  9. 几个 Cookie 操作例子的分析

    MDN 上提供了操作 Cookie 的若干个例子,也有一个简单的 cookie 框架,今天尝试分析一下,最后是 jquery-cookie 插件的分析. document.cookie 的操作例子 例 ...

  10. Eclipse连接SQL Server 2008数据库 以及问题总结

    Eclipse中使用SQL server 2008数据库 一.准备材料 要能够使用数据库就要有相应的JDBC,所以我们要去Microsoft官网下载 https://www.microsoft.com ...