[Departure from the Void] 簡易エディタ作成

ゲームのステージ構成や敵の配置情報などのデータを作成するエディタを作りました。

20170209_1 20170209_2

エディタと名乗ってますが、実態はUnityのインスペクタです。
インスペクタで設定したデータをJSON形式のファイルにエクスポートする機能を搭載しています。
エクスポートはコンテキストメニューから行うようにしました。

以下、エディタのソースです。

インスペクタで設定したマスターデータを保存する肝となる処理は以下の部分です。

JsonSerializerはインスペクタで設定された構造体をJSONにまるっと変換するためのシリアライザです。
自作のシリアライザクラスで、こちらの記事で解説しています。

EditorUtility.SaveFilePanel()で保存ダイアログを開き、JsonSerializer.Serialize()で構造体をbyte[]にシリアライズしています。
これをFileStream.Write()でファイルに書き出します。

簡易的なエディタならインスペクタだけでも済ませられますが、ステージ配置などは流石に厳しいので、シーン上に配置したオブジェクトからデータを作成できるような仕組みを考えています。