こんにちは。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はオブジェクト形式にならず使用不可だそう。
まさしくこの形で使用したかったので見送った。