Version: Unity 6.0 (6000.0)
语言 : 中文
Best practices for calling Java/Kotlin code
Android 应用程序入口点

将 Unity 集成到 Android 应用程序中

本页说明如何使用“Unity 用作库”(Unity as a Library) 功能将 Unity 运行时库集成到 Android 应用程序中。

使用此功能可以在应用程序中包含 Unity 支持的功能(例如 3D/2D 实时渲染、AR 体验、3D 模型交互或 2D 迷你游戏)。Unity 运行时库提供了多种控件来管理何时以及如何在应用程序中加载、激活和卸载内容。

重要提示:将 Unity as a Library 这一功能加入到项目中可能需要您调整原生托管插件,以便在 Android 上正常工作。对__ Gradle__一套 Android 构建系统,可自动执行多种构建过程。这种自动化意味着能减少许多常见的构建错误。更多信息
See in Glossary
清单进行更改的插件需要使用将“Unity 用作库”用于原生 iOS/Android 应用程序中概述的 Gradle 更改。

工作原理

从 Unity 构建 Gradle 项目时,无需进行任何其他操作。

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

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

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

代码仓库包含示例项目和插件(演示如何将 Unity 集成到 Android 应用程序中)以及更多文档。

要控制播放器,请转发 Intent 以启动 Unity 活动并在必要时对其进行扩展。有关更多信息,请参阅有关 Intents 和 Intent 过滤器的 Android 开发者文档。此外,还可以使用 UnityPlayer Java API。

IUnityPlayerLifecycleEvents

IUnityPlayerLifecycleEvents 提供一种与 Unity 播放器的两个重要生命周期事件进行交互的方式:

  • 卸载 (Unload) - 当 Application.UnloadUnityPlayer.unload() 卸载 Unity 播放器时,应用程序会调用 IUnityPlayerLifecycleEvents.onUnityPlayerUnloaded。这会使 Unity 播放器处于暂停状态,在该状态下它将卸载所有场景,但将其他所有内容保留在内存中。
  • 退出 (Quit) - Unity 播放器退出时,应用程序会调用 IUnityPlayerLifecycleEvents.onUnityPlayerQuitted。此调用之后,运行 Unity 的进程将结束。

可以将 IUnityPlayerLifecycleEvents 实例传递给 UnityPlayer 构造函数,或覆盖 UnityPlayerUnityPlayerActivity 子类中的方法。

限制

Unity 不会控制运行时生命周期,因此 Unity as a Library 可能并不适用于所有可能的用例。已知限制包括:

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

其他资源

Best practices for calling Java/Kotlin code
Android 应用程序入口点