はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】Unity公式のNewtonsoft JsonとNuGetからのdllを共存させる

はじめに

Unity2020よりPackageManagerからNewotonsoft.jsonがインポートできるようになりました。
Unity2020でNewtonsoft.Jsonを入れる - Qiita

Unity公式のNewtonsoft.json
それ以前ではdllを入れていた

www.nuget.org

ただUnity公式のものとNuGetから取ってきたもので一部違い(バージョンによるもの?)があったので、NuGetから取ってきたものを利用したくなりました。

しかし後々誰かがPackageManagerからNewtonsoft Jsonを入れた時にエラーが出てきたら嫌だなーと思っていたらどうやら共存させることができたので紹介します。

共存させる方法

単純にどちらもインポートすると以下のエラーが出てきます。

Multiple precompiled assemblies with the same name Newtonsoft.Json.dll included on the current platform. Only one assembly with the same name is allowed per platform.

Newtonsoft.Json.dllが複数ありますよというエラーですね。

これを解決するには、dllの方の名前を変えてあげれば解決できます。

// 名前の変更例
Newtonsoft.Json
↓
Newtonsoft.Json.Plugin
名前を変更する

ちなみに

Unity公式のものとNuGetから取ってきたものは名前空間が違います。

// Unity公式
using Unity.Plastic.Newtonsoft.Json;

// NuGet
using Newtonsoft.Json;