本页说明如何使用“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 项目都具有以下结构:
要将 Unity 集成到另一个 Android Gradle 项目中,必须通过 settings.gradle 文件将生成的 Android Gradle 项目的 unityLibrary 模块包含在您的 Android Unity 项目中。
此代码仓库包含示例项目和插件(演示如何将 Unity 集成到 Android 应用程序中)以及更多文档。
要控制播放器,请转发 Intent 以启动 Unity 活动并在必要时对其进行扩展。有关更多信息,请参阅有关 Intents 和 Intent 过滤器的 Android 开发者文档。此外,还可以使用 UnityPlayer Java API。
IUnityPlayerLifecycleEvents 提供一种与 Unity 播放器的两个重要生命周期事件进行交互的方式:
Application.Unload 或 UnityPlayer.unload() 卸载 Unity 播放器时,应用程序会调用 IUnityPlayerLifecycleEvents.onUnityPlayerUnloaded。这会使 Unity 播放器处于暂停状态,在该状态下它将卸载所有场景,但将其他所有内容保留在内存中。IUnityPlayerLifecycleEvents.onUnityPlayerQuitted。此调用之后,运行 Unity 的进程将结束。可以将 IUnityPlayerLifecycleEvents 实例传递给 UnityPlayer 构造函数,或覆盖 UnityPlayer 和 UnityPlayerActivity 子类中的方法。
Unity 不会控制运行时生命周期,因此 Unity as a Library 可能并不适用于所有可能的用例。已知限制包括: