[Departure from the Void] 簡易エディタ作成&ステージ配置処理実装
今日は先日に作成した簡易エディタの作成の続きと、エディタで作成したステージ配置のマスターデータをゲーム中に反映するところまで行いました。
以下、エディタの動画デモです。
エディタのソースは前回から殆ど進展ありません。
ステージ配置データは以下クラス図のLayoutRow構造体で表現し、エディタがこれをJSONファイルにシリアライズ、LayoutMasterクラスが実行時に保存したJSONファイルをLayoutRow構造体にデシリアライズして扱う感じです。
ステージに実際に配置する部分は、以下クラス図のStageLayouterクラスがLayoutMasterを参照し、LayoutRow構造体のデータを順繰り取得してシーンにGameObjectとして配置する構成としました。
ステージ配置処理のソースは次のようになりました。
まだ作りかけのため、TODOコメントが混ざってしまってる状態ですが、最低限の配置処理は行えます。
以下処理で配置データをJSONファイルからロードし、最初のオブジェクトをステージ中に配置します。
OnNextLayoutメソッドは次の通りです。
LayoutRow構造体フィールドのtimeミリ秒後にオブジェクトを配置する処理にしています。
実際にステージにオブジェクトを配置する処理はPutメソッド内で行っています。
MasterManager.Instance.LoadObject()でステージオブジェクトをGameObjectとしてInstantiateし、その後位置・回転・スケール・速度を設定しています。
駆け足の説明となってしまいました。
レベルデザインエディタの実装はもう少しブラッシュアップしたいです。
最低限、シーンに配置したGameObjectから配置データの作成(LayoutRow構造体のデータ設定)を行えるようにする予定です。
その後、残りのゲームロジックの実装を行っていきます。