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:
Platform | Inworld.AI (Websocket) | InworldAI.NDK | Inworld v1 | Inworld v2 |
---|---|---|---|---|
Windows Minimum Version | 2020.1 | 2020.1 | 2019.4 | 2021.3 |
Mac Intel 64-bit | 2022.3 | 2022.3 | 2022.3 | 2022.3 |
Mac Apple Silicon | 2022.3 | 2022.3 | 2022.3 | 2022.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:
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
.
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."
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.