在某些使用原生平台技术(如 Android/Java 和 iOS/Objective C)的场景中,开发人员希望在他们的应用程序/游戏中包含由 Unity 提供支持的功能(通常用于 3D/2D 实时渲染),如 AR 体验、与 3D 模型的交互,2D小游戏。
您现在可以将由 Unity(从 Unity 2019.3.a2 开始)提供支持的功能直接插入到您的原生移动应用程序中。这些功能包括但不限于 3D 或 2D 实时渲染功能,例如增强现实、2D 迷你游戏或 3D 模型。
您可以将 Unity 运行时组件和您的内容集成到本机平台项目中。Unity 运行时库公开控件以管理何时以及如何在本机应用程序中加载/激活/卸载。
前置要求:
- 安卓工作室 3.4.2+
- Unity 版本 2019.3.0b4+
限制
虽然我们测试了许多将 Unity 作为原生应用程序托管的库的场景,但 Unity 不再控制运行时的生命周期,因此我们不能保证它在所有可能的用例中都能正常工作。
例如:
- Unity 作为库仅支持全屏渲染,不支持在部分屏幕上渲染。
- 不支持加载多个 Unity 运行时实例。
- 您可能需要调整第 3 方插件(本机或托管)才能正常工作。
这个怎么运作
总体构建过程还是一样的,Unity 创建了 iOS Xcode 和 Android Gradle 项目,但是为了启用这个功能,我们更改了生成的 iOS Xcode 和 Android Gradle 项目,它们现在具有以下结构:
- 包含所有源代码和插件的库部分(iOS 框架和 Android 存档 (AAR) 文件)
- 一个瘦启动器部分,包括应用程序表示数据和运行库
集成 Unity 作为原生 Android 应用程序中的库
逐步解释如何在需要时将 Android 库部分包含到原生应用程序中。
示例:集成 Unity 作为原生 Android 应用程序中的库
集成 Unity 作为本机 iOS 应用程序中的库
逐步解释如何在需要时将 iOS 库部分包含到本机应用程序中。
示例:集成 Unity 作为原生 iOS 应用程序中的库
示例项目源代码