LoginSignup
3
3

More than 5 years have passed since last update.

Mixed Reality Toolkit - Unityを使いUWPで追加開発するときはJSONに気を付ける

Last updated at Posted at 2018-02-12

Mixed Reality Toolkit - Unity内でJSONライブラリ使っているという話

REST APIやWebSocket、パラメータの保存等最近はデファクト的になってきているJSONですが、Mixed Reality toolkit - Unity(以下MRTK)でも利用されています。
あまり意識をしていなかったのですが問題が発生し、色々対処することになったので情報共有します。

問題になっていたところ

例よってUnityだけで開発できる場合はさほど問題にはならないと思います。
一方、UWPにビルドした後に追加で実装する場合注意が必要です。
今回使っていたMRTKは以下のバージョンです。

  • MRTK-Unity 2017.2.1.0(HoloToolkit-Unity-2017.2.1.0.unitypackage)

MRTKはNewtonsoft.Json(8.0.3.19514)を利用しています。
このため、UWP側で追加するOSSライブラリがNewtonsoft.Jsonを使う場合はバージョンが同じになるように調整が必要になります。

もう少し詳細

今回問題になったのは、UWP側でMilkcocoa用のUWPのライブラリを利用するときでした。ライブラリの最新(1.3.0)はNewtonsoft.Jsonバージョンが9.0.1以上です。
image.png

nugetから取得すると自動的に9.0.1以降がセットアップされるのですが、この時点でバージョン違いのNewtonsoft.Jsonが複数セットされます。
厄介なことにそのまま何事もなくビルドと配置が終わります。この時点ではどちらかのバージョンのみが配置されるようです。動かすとDLLが見つからずにエラーが発生します。

対応策

使いたいライブラリのバージョンを合わせる。

今回のMilkcocoaのライブラリではバージョンが0.3.0であればMRTK内のNewtonsoft.Jsonを合うので、それを使用したところ問題は解消しました。ただし、この方法はライブラリ側が偶然古いバージョンを使っていたからできた方法ですが、現状この方法以外の回避策はないと思います。

最後に

MRTKでNewtonsoft.Jsonがある場所は「Assets\HoloToolkit\Utilities\Scripts\GLTF\Plugins」配下になります。ですが、ここを修正するのは影響範囲を考えると難しく、当面はバージョンを落とす対応しかないと思います。

3
3
0

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
  3. You can use dark theme
What you can do with signing up
3
3