kuront’s blog

主にUnityでのゲーム制作やってます。

【Unity】RPG制作 その19-ダンジョンの下層へ進む

 今回はダンジョンの下層にすすめるように階層間の移動を実装していきます。現状、DangeonMap.csに2次元配列を定義してそれをもとにダンジョンの部屋構造を定義しているのですが、その二次元配列を三次元配列に定義しなおします。

 


クリックで展開

これで階層ごとのダンジョンの部屋配置とイベントのID配置ができます。
QuestManager.csにいって、現在の階層を保持する変数を宣言します。

 


クリックで展開

QuestManager.csで実装していた、移動するごとにステージの進行度を1増やす処理を削除します。

 


クリックで展開

ダンジョン、マップを生成する時に実行するDangeonMap.csのSetDangeon関数と、SetEvent関数に現在の階層を渡すようにします。

 


クリックで展開

DangeonCotroller.csのCheckCanMove関数、GetCurrentPosDangeonEventID関数、DeleteRegiEvent関数、 DeleteEvent関数で使用していた二次元配列を[現在の階層、Y座標,X座標]の形の三次元配列に置き換えます。

 次に,階層を移動するイベントを作っていきます。eventID5を下階層への移動イベント、eventID6を上階層への移動イベントとします。最初に、eventID5,6に到達したら階段があることを知らせる関数をDangeonEventクラスに作成します。

 


クリックで展開

DangeonController.csのInformDangeonEvent関数で上記のイベントを呼び出す処理を追加します。



クリックで展開

イベントを知らせるイベントができたので、実際にイベントを実行する処理を追加していきます。


クリックで展開

DangeonController.csのIEDangeonEventProcess関数に処理を追加します。


クリックで展開

それとダンジョンの部屋生成をする時にstructOfDangeonの3次元配列で-1にしてあるところは何も表示しないようにしたいので、SetDangeon関数で処理を分岐させて画像を設定するようにします。


クリックで展開

フロアを移動した時にプレイヤーがroomのIDが-1以外の場所にランダムで配置されるようにします。そのための関数をDanceonController.csに作成します。


クリックで展開

この関数をDangeonEvent.csのIEDownFloorEventコルーチンとIEUpFloorEventコルーチンで呼び出すようにします。
これで上下の階層に移動することができるようになりました。

youtu.be

次回はイベントをランダムで配置できるようにしていきます。