環境
Unity Editor Version: 2020.2.7f1
Utf8Json: Ver 1.3.7
Utf8Json導入
UnityでJsonを使いたいとき、Unity標準のJsonUtilityや.NETのJson.NETなどを使うことになると思いますが、速度を求める場合はUtf8Jsonが便利です。
こちらのサイトを参考に、Unity+il2cpp環境でも使えるようなセッティングをしてみました。
upmには対応していないので、.unitypackageからプロジェクトに導入します。
パッケージを解凍するとEditorでエラーが出るので、Api Compatibility Levelを.NET 4.xに、Allow ‘unsafe’ codeのチェックボックスにチェックを入れる必要があります。
Pre Code Generation(Unity/Xamarin Supports) を参考に、リリースページからUtf8Json.UniversalCodeGenerator.zipをダウンロードして、以下のようなコマンドを叩きます(Mac)。
dotnet Utf8Json/src/Utf8Json.UniversalCodeGenerator/bin/Debug/netcoreapp2.0/Utf8Json.UniversalCodeGenerator.dll -d Assets/Project/Scripts/ -o Assets/Project/Scripts/Utf8JsonGenerated.cs
iOSでビルドエラーが出たときの対応
これで使えるようになるはずなのですが、iOSでだけビルドエラーが出てしまいました。
対応策として、ProjectSettings.assetのapiCompatibilityLevelPerPlatformに iOS: 3
と書かれている場合はそれを以下のようにテキストファイルとして開いて iPhone: 3
に編集してあげると動くようになります。
apiCompatibilityLevelPerPlatform:
Android: 3
Standalone: 3
WebGL: 3
iPhone: 3