[Departure from the Void] 簡易エディタ作成
ゲームのステージ構成や敵の配置情報などのデータを作成するエディタを作りました。
エディタと名乗ってますが、実態はUnityのインスペクタです。
インスペクタで設定したデータをJSON形式のファイルにエクスポートする機能を搭載しています。
エクスポートはコンテキストメニューから行うようにしました。
以下、エディタのソースです。
インスペクタで設定したマスターデータを保存する肝となる処理は以下の部分です。
JsonSerializerはインスペクタで設定された構造体をJSONにまるっと変換するためのシリアライザです。
自作のシリアライザクラスで、こちらの記事で解説しています。
EditorUtility.SaveFilePanel()で保存ダイアログを開き、JsonSerializer.Serialize()で構造体をbyte[]にシリアライズしています。
これをFileStream.Write()でファイルに書き出します。
簡易的なエディタならインスペクタだけでも済ませられますが、ステージ配置などは流石に厳しいので、シーン上に配置したオブジェクトからデータを作成できるような仕組みを考えています。