前言
Unity是一款市场占有率非常高的商业游戏引擎,横跨25个主流游戏平台,在市面上遥遥领先。尤其是在手机游戏平台,Unity已经处于无可撼动的霸主地位。在App Store和Google Market上,已经有太多用Unity开发的游戏了。另外,Unity不仅仅是一款游戏引擎,它已经渗透到了各个传统行业,在建筑、医疗、工业、娱乐、虚拟现实、动画、电影和艺术等行业中,都可以看到Unity的身影。为了兼容各平台特性以及复杂的需求,Unity的版本更新也非常及时,最新最酷的功能会第一时间给到开发者手中。
近些年,硬件设备处于飞速发展中,这促使游戏开发得到进一步发展。尤其是现在的移动设备,移动硬件几乎每年都会得到一次提升,这意味着将能做出效果更加酷炫的手机游戏来。这无疑也是对开发者的一种挑战,意味着每年都需要学习和应用新技术来使游戏效果更加逼真。
Unity底层是由C++ 编写的。为了让开发者上手更加容易,它利用Mono跨平台的特性使用C# 作为游戏脚本语言。为了与C++ 底层接口交互,引擎还封装了UnityEngine.dll和UnityEditor.dll,这样开发者只需要用C# 就可以开发自己的游戏了。另外,在编辑模式下,Unity也非常灵活,开发者可以任意拓展专属自己的编辑器。此外,它还提供了资源商店,从中能找到全球顶尖开发者上传的插件,其中大多数都是源码形式的,这给学习和工作提供了非常大的便利。另外,Unity还提供了完善的开发文档,甚至每一条API都有详细的解释,尤其是用户手册中还有详细的例子以及功能介绍。此外,官网中还有很多视频教程供开发者学习。
Unity不仅仅可以做3D游戏,也全面支持2D游戏的开发,尤其是最新版本的Unity 2018,它增加了2D的骨骼动画,对2D物理和地形也有更好的支持。在UI方面,UGUI作为官方支持的界面工具,太多游戏都采用它来制作游戏界面,3D方面就更不用说了,全新的动画系统以及时间线编辑工具让开发者可以更好地驾驭它。
本书主要面向初学者或者有一定基础的开发者,无论你是转行学习还是入门学习,都可以阅读本书。通过阅读本书,读者可以快速学习并入门3D游戏开发。此外,本书还包含了很多实战经验,其中丰富精彩的案例同样适用于晋级的读者。书中每一章都包含丰富的实例和源码,尤其是拓展编辑部分以及自动化部分,都是非常宝贵的实战经验,读者可以直接将其应用在实际开发中。
阅读本书
书中所有例子的源代码都可以在图灵社区(www.ituring.com.cn)本书主页免费注册下载,下载的源码按章编号,如图0-1所示。查看源码前,请确保Unity已经无误地安装在了本机当中。按照图中所示找到章节源码对应的游戏场景文件,双击该场景文件即可打开游戏工程,继而查看阅读。本书是在macOS下讲解Unity开发,若需在Windows下查看源码,查看方式与macOS下完全一致。
图0-1 打开游戏工程
致谢
时至今日,我已经从事游戏开发十余年了。这本书是第2版,距离上一版出版已经6年了。其实这些年我也看到了上一版中的很多问题,包括一些读者给我的反馈,鉴于此,这本书我决定完全重写。这本书的写作也是一波三折,它本该在2014年就写完,可是一直拖到了2018年才完成。这几年我的身边发生了很多事情,我也做了好几款游戏,遗憾的是没有特别成功的作品。对于游戏开发,我的内心永远是狂热的,我将不忘初心,永远坚持钻研技术,励志走在研发的第一梯队中。
我最想感谢的人就是这些年努力的自己,我对技术非常痴迷,我非常享受解决一个复杂难题的瞬间。由于这份痴迷,我经常会写代码到凌晨,我最应该感谢的就是我的妻子,早在我创作上一版书的时候,她就在我身旁,并一直支持我到今天。我必须要感谢图灵公司的编辑王军花,她教会我很多写作技巧并且审阅了本书的书稿,保证这本迟到了4年的书顺利出版。最后,祝图灵公司越做越好,为祖国的IT人才培养贡献出伟大的力量。
2018年7月19日
宣雨松