kuront’s blog

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

【Unity】RPG制作 その21-到達していない部屋を非表示にする

 前回の終わりで探索時のトラップを作成すると書きましたが、今回はその前に、到達していないダンジョンの部屋とその部屋に配置されているイベントを非表示にする処理を実装していきます。

 はじめに、イベント及び部屋を表示するかどうかのデータを保持する配列をDangeonMap.csに宣言します。

 


クリックで展開



isAlreadyEnterFloor配列は、既に訪れたことがある部屋かどうかのFloorごとの状態を保持する配列です。

 次に部屋とイベントの表示非表示の初期化処理の関数を作成します。

 


クリックで展開

これらの関数をDangeonMap.csのStart関数と、DangeonEvent.csのIEDownFloorEventコルーチンとIEUpFloorEventコルーチンで呼び出します。

 


クリックで展開

 


クリックで展開

 それから、現状プレイヤーが階段を上り下りした時に、プレイヤーの位置がランダムで決定されるようになっているのをやめて、階段を降りたときは次のフロアの上り階段に、階段を登ったときは次のフロアの下り階段に配置されるようにします。DangeonController.csに以下の関数を作成します。

 


クリックで展開

この関数をDangeonEvent.csのIEDownFloorEventコルーチンとIEUpFloorEventコルーチンで呼び出すようにします。

 


クリックで展開

 あとは、移動ボタンを押した時に、移動先の部屋とイベントを表示するようにします。DangeonController.csに以下の関数を作成します。

 


クリックで展開

これらの関数を、questManagerのOnCompleteMoveRoomに登録します。

f:id:kuront:20211024144424p:plain

以上の処理を追加して実行すると以下の動画のようになります。

youtu.be

これでたどり着いていない部屋とその部屋のイベントを非表示にするようになりました。次回はトラップや扉を開くためのスイッチなどを実装していきます。