search
LoginSignup
2

More than 1 year has passed since last update.

posted at

updated at

Unity2020でNewtonsoft.Jsonを入れる

この記事について

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のパッケージが追加されます。
image.png

"com.unity.nuget.newtonsoft-json"というのはVersionControlが依存しているNewtonsoft.Json.dllを含むパッケージです。

VersionControlを消す

Unityのバージョン管理機能を使っていなければVersionControlパッケージを消しても大丈夫です。
PackageManagerからVersion ControlをRemoveするだけです。
image.png

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を使えます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2