この記事について
Unity2020でNewtonsoft.Jsonをプロジェクトに入れるとMultiple precompiled assemblies with the same name Newtonsoft.Json.dll included or the current platform. Only one assembly with the same name is allowed per platform.
のようなエラーが発生することがあります。
これの回避法メモです。
原因
Unity2020以降のVersionControl(旧UnityCollaborate)がNewtonsoft.Jsonを利用するようになり、すでにNewtonsoft.Json.dllが含まれているため。
対処法
Newtonsoft.Json.dllを消す
単純に自前のNewtonsoft.Json.dllを消せば解決します。
Unity2020, Unity2021では何もせずとも最初からNewtonsoft.Jsonが使えます。
また、Newtonsoft.Jsonへの依存を明示するためにPackageManagerでパッケージを追加しておくといいです。
PackageManager左上の+ボタンから、「Add package from git URL...」でcom.unity.nuget.newtonsoft-json
を追加します。
これでNewtonsoft Jsonのパッケージが追加されます。
"com.unity.nuget.newtonsoft-json"というのはVersionControlが依存しているNewtonsoft.Json.dllを含むパッケージです。
VersionControlを消す
Unityのバージョン管理機能を使っていなければVersionControlパッケージを消しても大丈夫です。
PackageManagerからVersion ControlをRemoveするだけです。
com.unity.nuget.newtonsoft-jsonのNewtonsoft.Json.dllを消す
VersionControlは消さずにパッケージ内のdllだけを消すこともできます。
Library/PackageCache/com.unity.nuget.newtonsoft-json@2.0.0
ディレクトリをPackagesディレクトリ内にコピーします。
こうするとcom.unity.nuget.newtonsoft-jsonの中身を編集できるようになります。
あとはその中の不要なdllを消せば、自分で必要なdllを使えます。