零、前言

在这本书里,我们探索了不断扩大的移动游戏开发世界。使用 Unity 3D 和 Android SDK,我们学习了如何在利用 Unity 5.0 和 Android L 的新功能的同时创建移动游戏的各个方面。每一章都探索了开发难题的新部分。通过探索移动平台开发的特殊功能,书中的每一款游戏都旨在增加您对这些功能的理解。我们将完成这本书,总共有四个完整的游戏和所有的工具,你需要创造更多。

我们要做的第一个游戏是井字游戏。这款游戏的功能就像经典的纸质版一样。两个玩家轮流用他们的符号填充一个格子,第一个用相同的三个符号画一条线的人获胜。这是我们探索 Unity 中图形界面选项的完美游戏。通过学习如何将按钮、文本和图片添加到屏幕上,您将拥有向任何游戏添加您可能想要的任何界面所需的所有理解和工具。

我们将创建的下一个游戏是坦克战游戏。在这个游戏中,玩家控制一辆坦克在一个小城市周围行驶,射击目标和敌人。这款游戏横跨三章,让我们可以探索为安卓平台创作游戏的诸多关键点。我们从创建一个城市开始,通过使用我们在制作井字游戏时学习的控制,让玩家的坦克四处移动。我们还创建玩家将要射击的目标并制作其动画。在这个游戏的第二部分,我们添加了一些灯光和特殊的相机效果。这一章结束时,环境看起来很棒。在游戏创作的第三部分,我们创造了一些敌人。利用统一的力量,这些敌人在城市周围追逐玩家,并在玩家靠近时攻击他们。

第三款游戏是一款流行手机游戏的简单克隆。利用 Unity 物理系统的力量,我们能够创造结构并向它们投掷鸟。击倒建筑获得积分,摧毁目标猪赢得关卡。我们还探索了 2D 游戏和 Unity 的 2D 管道的一些特定功能,例如视差滚动背景和精灵的使用。我们通过创建一个等级选择菜单和保存高分来完成这一章和游戏。

最后,我们将创建一个猴球式的游戏。这个游戏包括使用移动设备的特殊输入来控制球的移动和玩家与世界的互动。当玩家的设备倾斜时,他们将能够引导猴子绕过关卡。当他们触摸屏幕时,他们可以造成伤害,并最终收集分散在整个游戏中的香蕉。这个游戏也向你展示了如何包含完成每一个游戏外观所必需的特效。当香蕉被收集时,我们制造爆炸,当我们的猴子四处走动时,我们制造灰尘痕迹。我们还增加了触摸和爆炸的音效。

我们通过研究优化来总结这本书。我们探索了 Unity 的所有伟大特性,甚至创建了一些我们自己的特性来使我们的游戏尽可能地运行。我们还花了一点时间来了解我们可以做些什么来最小化我们素材的文件大小,同时最大化它们在游戏中的外观和效果。至此,我们的旅程结束了,但我们将有四款出色的游戏即将上市。

这本书涵盖了什么

第一章向 Unity 和 Android 问好,探究 Android 平台和 Unity 3D 游戏引擎的特性列表,并解释为什么它们是开发的绝佳选择。我们还介绍了开发环境的设置,并为您的设备和仿真器创建了一个简单的 Hello World 应用程序。

第二章好看–图形界面,详细看一下图形用户界面。通过创建一个井字游戏,你可以了解用户界面,同时让它看起来令人愉悦。

第 3 章任何游戏的支柱——网格、材质和动画,探索如何在 Unity 中利用网格、材质和动画。通过创建一个坦克战游戏,我们涵盖了玩家在玩游戏时会看到什么的核心。

第 4 章设置舞台-相机效果和灯光,解释了 Unity 中可用的相机效果和灯光选项。随着阴影、光照图、距离雾和天空盒子的加入,我们的坦克战环境变得更加动态。通过利用特殊的相机效果,我们为玩家创造了额外的反馈。

第五章闯荡–寻路和 AI ,展示了我们坦克战游戏中胆汁敌人的创造。我们探索寻路和人工智能,给玩家一个比静止假人更有意义的目标。

第 6 章移动设备的特性–触摸和倾斜,涵盖了使现代移动设备变得特别的特性。我们创建了一个猴子球风格的游戏来理解触摸界面和倾斜控制。

第 7 章耀武扬威——物理和一台 2D 相机,向您展示了如何在猴子球游戏中短暂休息的同时创建愤怒的小鸟游戏的克隆。物理和统一的 2D 管道也在这里探索。

第八章特效–声音和粒子,让我们回到猴球游戏中添加特效。音效和粒子的加入让我们可以创造更完整的游戏体验。

第 9 章优化,涵盖 Unity 3D 中的优化。我们涵盖了让我们的坦克战和猴球游戏尽可能高效的好处和成本。

这本书你需要什么

在本书中,我们将同时使用统一 3D 游戏引擎和安卓平台。正如您在上一节中看到的,我们将在第一章中介绍 Unity 和 Android SDK 的获取和安装。为了充分利用这本书,你需要使用安卓设备;一部好用的手机或平板电脑。本书封面的某些部分提供了仅在专业版 Unity 中可用的功能。为了简单起见,我们将假设您在一台 Windows 操作系统的计算机上工作。此外,整本书的代码都是用 C#编写的,尽管每一章项目的 JavaScript 版本都可供参考。为了充分利用为每章项目提供的模型,您将需要 Blender,这是一个免费的建模程序,可在http://www.blender.org获得。您还需要一个照片编辑程序;Photoshop 和 Gimp 都是极好的选择。您将需要一个建模程序(如 Blender)和一个图像编辑程序(如 Photoshop 或 Gimp)来创建和处理您自己的内容。我们还建议您获取用于创建或获取音频文件的来源。本书提供的所有音频文件都可以在http://www.freesound.org找到。

这本书是给谁的

这本书对于不熟悉使用 Unity 5.0 和 Android L 进行游戏开发和移动开发的读者来说将是最佳选择。通过现实世界的例子而不是枯燥的文档学习得最好的读者会发现每一章都很有用。即使你很少或没有编程技能,这本书也会让你跳进去学习一些编程和游戏开发的概念和标准。

惯例

在这本书里,你会发现许多区分不同种类信息的文本样式。以下是这些风格的一些例子和对它们的意义的解释。

文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、伪 URL、用户输入和 Twitter 句柄如下所示:“函数CheckVictory贯穿了游戏胜利的可能组合。”

代码块设置如下:

public void NewGame() {
  xTurn = true;
  board = new SquareState[9];
  turnIndicatorLandscape.text = "X's Turn";
}

任何命令行输入或输出都编写如下:

adb kill-server
adb start-server
adb devices

新名词重要词语以粗体显示。您在屏幕上看到的单词,例如菜单或对话框中的单词,会出现在如下文本中:“点击下载适用于 Windows 的软件开发工具包工具按钮,进行后续操作。”

警告或重要提示会出现在这样的框中。

类型

提示和技巧是这样出现的。

读者反馈

我们随时欢迎读者的反馈。让我们知道你对这本书的看法——你喜欢或不喜欢什么。读者反馈对我们来说很重要,因为它有助于我们开发出你真正能从中获益的标题。

要给我们发送一般反馈,只需发送电子邮件<[feedback@packtpub.com](mailto:feedback@packtpub.com)>,并在您的邮件主题中提及书名。

如果你对某个主题有专业知识,并且对写作或投稿感兴趣,请参见我们位于www.packtpub.com/authors的作者指南。

客户支持

现在,您已经自豪地拥有了一本书,我们有许多东西可以帮助您从购买中获得最大收益。

下载示例代码

您可以从您在http://www.packtpub.com的账户下载您购买的所有 Packt Publishing 书籍的示例代码文件。如果您在其他地方购买了这本书,您可以访问http://www.packtpub.com/support并注册,以便将文件直接通过电子邮件发送给您。

下载本书的彩色图片

我们还为您提供了一个 PDF 文件,其中包含本书中使用的截图/图表的彩色图像。彩色图像将帮助您更好地理解输出中的变化。您可以从以下网址下载此文件:https://www . packtpub . com/sites/default/files/downloads/learning unity AnD RodyGameDevelopment _ graphics . pdf

勘误表

尽管我们尽了最大努力来确保我们内容的准确性,但错误还是会发生。如果你在我们的某本书里发现了错误——可能是文本或代码中的错误——如果你能向我们报告,我们将不胜感激。通过这样做,你可以让其他读者免受挫折,并帮助我们改进这本书的后续版本。如果您发现任何勘误表,请访问http://www.packtpub.com/submit-errata,选择您的书籍,点击勘误表 提交 表格链接,并输入您的勘误表详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上传到我们的网站或添加到该标题勘误表部分下的任何现有勘误表列表中。

要查看之前提交的勘误表,请前往https://www.packtpub.com/books/content/support并在搜索栏中输入图书名称。所需信息将出现在勘误表部分。

盗版

互联网上版权材质的盗版是所有媒体的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上遇到任何形式的我们作品的非法拷贝,请立即向我们提供位置地址或网站名称,以便我们寻求补救。

请通过<[copyright@packtpub.com](mailto:copyright@packtpub.com)>联系我们,获取疑似盗版资料的链接。

我们感谢您在保护我们的作者方面的帮助,以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有问题,可以在<[questions@packtpub.com](mailto:questions@packtpub.com)>联系我们,我们将尽最大努力解决问题。