文档

Unity Engine

Unity Engine

将“Unity 用作库”用于其他应用程序

Includes information about integrating Unity as a library in other applications, the platforms that support this feature, and known limitations.
阅读时间3 分钟最后更新于 1 个月前

如果专家用户使用原生平台技术(例如 Java/Android、Objective C/iOS 或 Windows Win32/UWP)并希望在其游戏或应用程序中包含 Unity 支持的功能,则可以使用专门为此设计的“Unity 用作库”(Unity as a Library)。
本文档假定您具有开发原生平台技术(例如 Java/Android、Objective C/iOS 或 Windows Win32/UWP)的经验,并且熟悉项目结构、语言功能和特定平台配置选项(例如,用户权限)。
从 Unity 2019.3 开始,您可以将内容和 Unity 运行时组件集成到原生平台项目中,从而将 Unity as a Library 用于其他应用程序。这样就可以嵌入使用 3D 或 2D 实时渲染的内容,例如 AR 体验、3D 模型交互以及 2D 迷你游戏。Unity 运行时库提供了多种方法来管理如何在原生应用程序中加载、激活和卸载。
以下平台目前支持 Unity as a Library:
要确定平台版本和其他依赖项,请参阅系统要求页面。

限制

由另一个应用程序托管时,Unity 不能控制运行时生命周期,因此可能无法在所有情况下都奏效。已知限制包括:
  • 在 Android 和 iOS 上:
    • 仅支持全屏渲染。但是,如果您是 Unity Industry 客户,限制和功能可能会有所不同。
    • Unity 处于卸载状态(调用
      Application.Unload
      之后)时,它将保留一些内存(80-180Mb 之间),以便能够立即切回并在同一进程中再次运行。未释放的内存量很大程度上取决于设备的图形分辨率。
  • 在 iOS 上,如果 Unity 运行时完全退出(调用
    Application.Quit
    之后),无法在同一应用程序会话中重新加载 Unity。
  • 您不能加载多个 Unity 运行时实例或集成多个 Unity 运行时。
  • 您可能需要调整您的原生和托管插件才能正常工作。