Version: 6000.3
语言: 中文
调用 Java/Kotlin 代码的最佳实践
Android 应用程序入口点

将 Unity 集成到 Android 应用程序中

本页介绍如何使用 Unity 作为库功能将 Unity 运行时库集成到 Android 应用程序中。

您可以使用此功能来包含 Unity 支持的功能,例如 3D/2D 实时渲染、AR增强现实
更多信息 术语表
将 3D 模型交互或 2D 迷你游戏体验到您的应用程序中。Unity 运行时库公开了用于管理何时以及如何在应用程序中加载、激活和卸载内容的控件。

重要提示:在项目中引入 Unity 作为库可能需要您调整本机托管 插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表
在 Android 上正常工作。对Gradle一种 Android 构建系统,可自动执行多个构建过程。这种自动化意味着许多常见的生成错误不太可能发生。更多信息
请参阅术语表
清单需要使用将 Unity 用作原生 iOS/Android 应用中的库中概述的 Gradle 更改。

运作方式

从 Unity 构建 Gradle 项目时,您无需执行任何不同作。

Unity 生成的每个 Android Gradle 项目都有以下结构:

  • unityLibrary 模块中的库部件,您可以将其集成到任何其他 Gradle 项目中。这包含 Unity 运行时和播放器数据。
  • 启动器模块中的精简启动器部分,包含应用程序名称及其图标。这是一个启动 Unity 的简单 Android 应用程序。您可以将此模块替换为您自己的应用程序。

要将 Unity 集成到另一个 Android Gradle 项目中,您必须通过 settings.gradle 文件将生成的 Android Gradle 项目的 unityLibrary 模块包含在 Android Unity 项目中。

存储库包含示例项目和插件,演示如何将 Unity 集成到 Android 应用程序中,以及更多文档。

要控制播放器,请中继 Intent 以启动 Unity 活动,并在需要时扩展它。如需了解详情,请参阅有关 Intent 和 Intent 过滤器的 Android 开发者文档。您还可以使用 UnityPlayer Java API。

IUnityPlayer生命周期事件

IUnityPlayerLifecycleEvents 提供了一种与 Unity Player 的两个重要生命周期事件交互的方法:

  • 卸载 - 应用程序调用IUnityPlayerLifecycleEvents.onUnityPlayerUnloaded什么时候Application.UnloadUnityPlayer.unload()卸载 Unity Player。这会使 Unity Player 处于暂停状态,它会卸载所有场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
    请参阅术语表
    ,但将其他所有内容加载到内存中。
  • 退出 - 应用程序调用IUnityPlayerLifecycleEvents.onUnityPlayerQuitted当 Unity Player 退出时。运行 Unity 的进程在此调用后结束。

您可以传递IUnityPlayerLifecycleEvents添加到 UnityPlayer 构造函数,或覆盖UnityPlayerUnityPlayerActivity.

局限性

Unity 不控制运行时生命周期,因此 Unity 作为库可能不适用于所有可能的用例。已知限制包括:

  • Unity as a Library 仅支持全屏渲染。但是,如果您是 Unity 行业客户,则限制和功能可能会有所不同。
  • 不能加载或集成多个 Unity 运行时实例。
  • 您可能需要调整第三方插件(本机插件和托管插件)以与 Unity 运行时配合使用。
  • Unity 作为库与 Xamarin 应用平台不兼容。
  • 您无法将 Unity 运行时库作为动态模块与 Play Feature Delivery 集成。

其他资源

调用 Java/Kotlin 代码的最佳实践
Android 应用程序入口点