Version: 2019.3
Platform development
Standalone

Using Unity as a Library in other applications

In some scenarios, developers using native platform technologies such as Java/Android, Objective C/iOS, or Windows Win32/UWP, want to include Unity-powered features in their games or applications. These features might use 3D or 2D real-time rendering, like AR experiences, interaction with 3D models, 2D mini-games, and so on.

Starting with Unity 2019.3, you can use Unity as a Library in other applications by integrating your content and the Unity runtime components in a native platform project. The Unity Runtime Library exposes ways to manage loading, activating, and unloading within the native application.

The following platforms currently support Unity as a Library:

To determine platform versions and other dependencies, see the system requirements page.

Limitaciones

When hosted by another application, Unity doesn’t control the runtime lifecycle, so it might not work in all scenarios. Known limitations include:

  • On Android and iOS:
    • Only full-screen rendering is supported. It’s not possible to render only on a part of the screen.
    • When Unity is in an unloaded state (after calling Application.Unload), it retains some amount of memory (~100Mb or less) to be able to instantly switch back and run again in the same process.
  • On iOS, if the Unity runtime quits entirely (after calling Application.Quit), it’s not possible to reload Unity again in the same app session.
  • You can’t load more than one instance of the Unity runtime, or integrate more than one Unity runtime.
  • You might need to adapt your native and managed plug-ins to work properly.

  • Unity as a Library added in 2019.3.NewIn20193
Platform development
Standalone