Android 开发入门

为运行 Android 操作系统的设备构建游戏的方法与 iOS 开发类似。然而,所有 Android 设备的硬件并非完全标准,这样会出现 iOS 开发中没有的问题。与 iOS 版本相比,Android 版本的 Unity 存在一些功能上的差异。

设置 Android 开发者环境

在设备上测试 Unity 游戏之前,您将需要设置 Android 开发者环境。这涉及在不同的 Android 平台上下载并安装 Android SDK,并将物理设备添加至您的系统(Windows 或 Mac 可能有所不同)。这个设置过程在 Android 开发者网站有详细说明,并且设备的制造商可能会提供 更多信息。由于这是一个复杂的过程,我们为在 Android 设备或 Android 模拟器上运行代码之前必须完成的任务提供 基本概述。但最好还是遵照Android 开发者门户网站给出的步骤指示。

访问 Android 功能

Unity Android 提供 脚本 API,以访问多种输入数据和设置。您可以在 Android 脚本页面了解更多有关可用类的详细信息。

脚本访问本机 Native C、C++ 或 Java 代码

Unity Android 允许您直接从 C# 脚本调用使用 C、C++ 或 Objective-C 编写的自定义本机函数(Java 函数可以直接调用)。如需了解如何在 Unity 访问本机函数,请参阅插件页面

遮挡剔除

Unity 支持遮挡剔除,这是移动平台难能可贵的一项优化。如需了解更多信息,请参阅遮挡剔除页面。

定制启动画面 (Splash Screen)

可以自定义游戏启动时显示的启动画面 - 请参阅此页了解更多详情。

故障排除与错误报告

应用程序崩溃或无法像预期一样运行的原因多种多样。我们的There are many reasons why your application may crash or fail to work as you expected. Our Android 故障排除指南将帮助您尽快找到错误的根源。如果在查阅指南之后,您怀疑故障是 Unity 内部问题,那么就应该提交错误报告 - 请参阅此页了解如何完成这一操作的更多详情。

Unity Android 和桌面 Unity 有何不同

强类型的 JavaScript

出于性能原因,在 Unity Android 中,Javascript 动态类型始终关闭,有如将 #pragma strict 自动应用到所有脚本。了解这一点非常重要,因为如果启动最初为桌面平台开发的工程,当切换到 Android 时,您可能会遇到意想不到的编译错误;动态类型的首要任务是调查。如果可以确保所有变量是显式类型或初始化时使用类型推断,这些错误通常很容易修复。

建议最好使用 ETC 作为纹理压缩格式

虽然 Unity Android 不支持 DXT/PVRTC/ATC 格式的纹理,如果使用的特定设备不支持这些压缩方法,Unity 会在运行时解压缩纹理到 RGB(A) 格式。这样可能影响 GPU 的渲染速度,所以推荐使用 ETC 格式替代。ETC 已作为 Android 2.0 之后所有版本的标准压缩格式。ETC 不支持 alpha 通道,考虑到必须使用 alpha 的大小、质量和渲染速度,RGBA 16-bit 将是最好的选择。

您可以为每种 DXT/PVRTC/ATC 格式创建分离的 android 分配存档 (.apk) 并让 Android Market 的过滤系统为不同设备选择正确的存档。(请查阅发布 Android 编译)。

电影回放

Android 不支持电影纹理,但是它通过脚本函数提供 全屏流播放。如需了解 Android 支持哪些文件格式和脚本 API 的信息,请参阅电影页面Android 支持的媒体格式页面

进一步阅读

Page last updated: 2013-06-27