本书从架构与封装、艺术资源、底层核心、自定义扩展和独立游戏五个方向组织内容,每一方向均围绕一个问题展开论述,重点讲解了Unity 3D 开发的高级技巧。这种问答的形式,既有助于读者扩展思考,又可用于面试题。本书除了涉及代码架构和引擎底层原理,还包含了美术资源管理、艺术效果制作、工作流程优化等,通过解析这些实际开发过程中遇到的问题,可以更全面地提升读者的知识储备。书中的大部分章节都附有示例代码,聚焦具体的知识点,让读者知其然并知其所以然。
本书适用于希望技术进阶的Unity 3D 开发者、独立游戏开发者,或有初级经验的游戏从业者。
本书从架构的角度,以日常开发中的常见问题入手,通过实例代码详细讲解了Unity 3D游戏开发的高级技巧。
前 言
这是一本面向游戏开发者的进阶指南。
本书从日常开发遇到的问题入手,以编程思想为线索,探讨合理的解决方案。在技术方面,本书会结合使用广泛的Unity 3D 进行讲解。虽然本书中的很多内容都不会被引擎所桎梏,但从某种意义上讲,这确实是一本对Unity 3D 使用者有更大价值的书。
为了更便于查找,本书内容组织上采用问答的形式。提出的问题通常都是开放性的,随着对底层原理认识的加深,读者自己也能答出更多有料的内容。当然,作者也会被自身能力限制,所以答案是探讨式的,以期逐步深入地挖掘原理。
本书整体通过以下五个方向组织内容:架构与封装、艺术资源、底层核心、自定义扩展和独立游戏。从层次上看是从应用层、效果层、引擎层、工具层到职能扩展层的顺序论述。大体看来,是从日常技能逐渐过渡到核心能力的讲解顺序。
每个方向围绕一个问题展开论述,有的内容会侧重概念的讲解,大多数情况下会结合实际代码来说明。通过这样的方式,尽量让读者知其然并知其所以然。很多小结后面会有延伸思考,我也希望读者能根据问题深入探讨,这些问题大多附有解答思路,希望能帮助大家养成勤于思考的习惯。
对于游戏来说,技术只是其中的重要部分,但我更将其看作技术与艺术的结合体,因此美术方面的知识、游戏玩法的设计也不可或缺。本书在编排的过程中,我尽量兼顾上述要点,以期有兴趣的新手读者,从业人员,或者是独立开发者,都能从本书中得到些收获。另外,对于希望进入游戏界的读者,本书可以从全局的角度,帮助你理解游戏开发的架构流程。
本书中会将一些网址,或者一些扩展问题的解答放到我的微信公众号中,通过在公众号中回复相应的关键字来获得自动回复。采用这种做法主要基于以下原因:
◎ 链接很容易更新或失效。
◎ 手动输入链接比较麻烦,通过微信电脑端可以直接在PC 上打开有效的链接。
◎ 有链接形式的引用知识,方便跳转阅读。
◎ 对照问题答案时,避免来回翻页。
在本书中,我会以[ :回复关键字]来标注某些特殊的内容,通过在微信中回复关键字可以
得到相关信息。
下面是我的微信公众号,可扫码加入。
本书前四部分讨论的问题都可以用来做面试题,面试时也可以延伸出很多扩展问题。希望读者能勤于思考,动手实践,“纸上得来终觉浅,绝知此事要躬行”。
资源引用
本书引用的资源基本出自AssetStore 中,可以免费下载完整版。我对其中的一些资源做了整合,如果希望下载这些挑拣过后的资源,可以直接下载随书的代码工程,地址为[ :mygit]。前面的标记表示,在我的微信公众号中回复mygit 即可获得相关内容,以防链接失效。下面介绍这些资源的出处。
2D platformer
Unity 官方的2D 示例,AssetStore 的链接为http://u3d.as/5m5。在这个项目中可以看到2D帧动画的制作方法,其中包含了一个可运行的游戏。
2D Roguelike
一个2D 像素风格的项目,AssetStore 链接为http://u3d.as/bAx。这个项目展示了如何使用序列帧制作游戏。
Unity-Chan
Unity 日本公司提供的Unity 资源,AssetStore 链接为http://u3d.as/85c。它包含一个动漫少女的模型和动画。截至本书出版,它仍是目前AssetStore 中,品质数一数二的美术资源。资源的材质包含了目前主流的卡通渲染技术,在日渐火爆的二次元环境下,这个免费样例极具参考价值。
但需要注意的是,这个角色受到 Unity-Chan License Terms 证书的保护,如果需要在商业产品中使用该资源,需要在显眼处标记UnityChan 公司的标志。
Space Robot Kyle
这是一个Unity 官方推出的机器人模型,AssetStore 链接为http://u3d.as/3t7。整个项目十分简单,只有模型、Diffuse 贴图、Normal 贴图和标准Lambert 材质。由于它效果不错,又是很早
就出现的Unity 官方资源,因此在AssetStore 中,大量插件都使用它作为功能演示模型。