MessagePackのデータをUnityのTreeViewで表示する

f:id:enrike3:20190210162406p:plain

MessagePack-CSharpは機能も性能も充実しているのでとにかく問答無用で使うわけですがJsonと違って中のデータを汎用エディタでさくっと覗けるわけではありません。 しかしマスタデータや、ユーザーの起動時ダウンロードデータなどをブレイクポイントをはって眺めるのもたいがい非効率なので、UnityにTreeViewも来たことだし、UnityのTreeViewでMessagePack-CSharpのデータを表示できるようにしてみました。まあどこも似たようなものは作っていると思うんですが…

github.com

使い方は、MessagePackGridViewWindowにMessagePackなObjectを放りこむだけです。 ただし、Deserialize時にFormatterが登録されている必要はあるので、非Playモードで使用するならInitializeOnLoadあたりでMessagePackのFormatterの登録は必要になります。

var msgPackObj = MessagePackSerializer.Deserialize<ExampleType>(bytes);
var window = EditorWindow.GetWindow<MessagePackGridViewWindow>();
window.SetData(msgPackObj);

現時点では表示のみだしソートもフィルタもできませんしUnion非対応だし、とアルファ以前ぐらいの出来ですがあまり気にせずに公開してみました。 おいおい機能は強化していく、と思います。