【Unity】Json.netのインストール失敗(dllインポート)対策

こんにちは。IAFです。

文章テキストをJsonで作り、Dictionary形式で作りたいと考えたため、

Unity上でJson.netを使用し読込を行うこととしました。

 

簡単にインストールできる…という話でしたが、意外につまづいたので忘備録としてメモ。

前提条件

・Unity 2020.3.32f1

・Json.net 13.0.1

 

Json.netインストール方法

インストール方法は大きく分けて2つ。

・Git等を利用してコマンドからインストール

・dllをダウンロードしてローカルで手動インストール

今回は手動インストールを行うこととしました。

(本当はGitやったほうがいいのでしょうが、なぜか抵抗感があるんですよね…)

 

やった方法(失敗した方法)

要は適切なdllをダウンロードして、Unityのプロジェクトのpluginsフォルダに入れる。それだけ。

以下よりjson.netのzipファイルをダウンロードする。

https://github.com/JamesNK/Newtonsoft.Json/releases

 

しかし、この方法では2つエラーが出て躓いた。

・エラー① scriptの参照生成が失敗しusingで参照できない

・エラー② .NetFrameworkのバージョン(3.5?)との問題(再現性が無いため不明)

 

 

出来た方法

・①対策 インポート方法の変更

ファイルのドラッグアンドドロップではなく、

Unity EditorのAssets->Import Assetより対象のdllを選択しインポートすることで解決した。

・②対策 適切なバージョンのdllを使用

net20のフォルダ内のdllではなく、netstandard2.0内のdllをインポートすることで解決した。

但し、このブログを書くため再度エラーを見ようとnet20の方に戻したところこのエラーは再現しなかったので不確実かも。

(UnityのBuildSetting-Otherにて4.xを指定している場合、4.x対応のファイルを入れる必要があるかもしれない)

 

以上

 

補足

zip内には.netのバージョンに応じ複数のdllファイルがある。今回は.net standard 2.0で考えるので、netstandard2.0フォルダ内のdllをpluginsに入れた。

 

 

参考

JsonUtilityは以下のようなJSONはオブジェクト形式にならず使用不可だそう。

まさしくこの形で使用したかったので見送った。