Skip to main content

Compatibility

Update

We have recently released Inworld Unity SDK version 3.0. If you are still using version 2.x, please refer to this Upgrade Manual for guidance on how to upgrade to the latest SDK.

Unity Version

The minimum supported Unity version is 2020.1. Any version below that may not be compatible for both .NET Standard 2.1 and .NET framework.

However, if you are using MacOS and want to build MacOS applications, there is a known bug for Unity. Please upgrade to 2022.3.10f1 or newer.

What's New

In Inworld Unity SDK v3.0, we have incorporated two distinct transmission protocols: WebSocket (default) and NDK. Users can choose between the two based on their specific requirements. WebSocket is compatible with a broader range of platforms and is much smaller than NDK (around 200 KB in total) and faster, but it consumes more bandwidth. NDK uses legacy gRPC for transmission, which theoretically offers higher speed and lower bandwidth consumption.

We also now offer two different Unity SDK versions: InworldAI.Full and InworldAI.Lite. We have separated the various modules using Unity's Assembly Definitions.

InworldAI.Lite supports lightweight projects with a significantly smaller download size. It does not include any character models from ReadyPlayerMe or Inworld avatars, which is suitable for developers with capabilities to import their own character skeletons and animations in Unity. Ideal for WebGL deployments or projects where package size is a consideration.

InworldAI.Lite includes only the InworldAI module, while InworldAI.Full includes all the modules.

Platform

Detailed compatibility for each platform is listed below:

PlatformInworld.AI (Websocket)InworldAI.NDKInworld v1Inworld v2
Windows Minimum Version2020.12020.12019.42021.3
Mac Intel 64-bit2022.32022.32022.32022.3
Mac Apple Silicon2022.32022.32022.32022.3
Android✔️only ARM64-v8a✔️✔️
Oculus✔️only ARM64-v8a✔️✔️
iOS✔️✔️✔️✔️
Linux✔️
WebGL✔️

NewtonSoft Json Issues

The module Inworld.Samples.RPM containing the legacy samples with Ready Player Me avatars (referred to as RPM), depends on Newtonsoft Json and GLTFUtility.

By default, the Newtonsoft Json package is automatically added into Unity. However, it may not be applied to some templates or may be removed in your package.json. If you encounter the error error CS2046: The type or namespace name 'NewtonSoft' could not be found or errors related to JObject, as shown in the image below:

newton

Please refer to this page for more information.

When building an app for certain platforms, you may encounter the following errors if your Unity Editor's Packages do not include Newtonsoft.Json:

ILLink: error IL1999: ERROR: Failed to resolve base type Newtonsoft.Json.JsonConverter for type Siccity.GLTFUtility.Converters.ColorRGBConverter in assembly Siccity.GLTFUtility.dll when linking against the UnityAot-Linux profile
Fatal error in Unity CIL Linker
Unity.Linker.StrippingResolutionBaseTypeException: ERROR: Failed to resolve base type Newtonsoft.Json.JsonConverter for type Siccity.GLTFUtility.Converters.ColorRGBConverter in assembly Siccity.GLTFUtility.dll when linking against the UnityAot-Linux profile
at Unity.Linker.MonoBehaviorUtilities.DerivesFrom(UnityLinkContext context, TypeDefinition type, String[] possibleBaseNames)
...

In this case, please delete the entire folder Assets\Inworld\Inworld.Samples.RPM\Plugins\ThirdParty\NewtonSoftJson, then go to Window > Package Manager, click + > Add package by name, and enter com.unity.nuget.newtonsoft-json.

AddPackage1

Rendering Pipeline

While the default Inworld avatar in the demo works with the Built-in pipeline, all our characters (Ready Player Me or Innequin) created through https://studio.inworld.ai/ are compatible with all rendering pipelines. If you wish to upgrade your models to use the Scriptable Render Pipeline, simply right-click on your character and select Inworld > Upgrade Materials for Scriptable Render Pipeline." upmat

Input System

Our Inworld Player Controller is currently not compatible with Unity's Input System by default. Support for this is planned for the future.

Android

Unity cannot proceed Android build by 2021.3.6f1 is a known bug for Unity. To resolve this, copy the whole Tools folder from the previous Unity version. Check this page for more details.

Mac/iOS

Microphone Usage Description

If you want to build an iOS app, please fill in Microphone Usage Description under Project Settings > Player > iOS > Other Settings > Configuration.

Also, for the default iOS app, the sound only comes out of the earpiece and may be relatively quiet. To output sound from the loudspeaker, you need to set Force IOS Speakers When Recording as well.

iOSSpeaker