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 此页了解如何完成这一操作的更多详情。

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