前回の記事では武器、HP回復アイテム、空腹度回復の食料などパラメータが変化するアイテムを取得できる宝箱イベントを作り、実際にダンジョンに配置できるようにしました。
前回の記事:
今回の記事ではアイテムに引き続きマップに罠を配置できるようにします。
トラップに引っ掛かったプレイヤーは様々なネガティブな効果を受けてしまうようになります。
また、見えない罠の作り方も扱っていきます。
ローグライクゲームのダンジョン探索のドキドキ感が高まりますね。
Unityを使ってローグライクの罠プレハブを作成する
まず罠を表すプレハブを作成します。次の手順を行ってください。
- メニューから空のGameObjectを作成し、名前を「TrapPrefab」にしてください。
- メニューのGameObject > 3DObject > 「Sphere」をクリックし、GameObjectを作成してください。名前は「Model」にしてください。
- 作成した「Model」は「TrapPrefab」の子GameObjectにしてください。
- サイズはお好みでいいですが、1マスに収まるぐらいにしましょう!
- ※お好みで好きなマテリアルを設定するのもいいでしょう。
(※「Model」は表示するモデルの位置調節に使用します。)
ここまでできたら、シーンの上の「TrapPrefab」をプレハブ化してください。プレハブ化した後はシーンにある「TrapPrefab」は削除してください。
また罠は前回の記事の宝箱と同じ感じになるので、先に実装する罠分のプレハブも作成します。
「TrapPrefab」を複製して、「FoodTrapPrefab」も作成してください。
「TrapPrefab」は体力減少の罠に、「FoodTrapPrefab」は食料減少の罠のプレハブにします。
「FoodTrapPrefab」の内容は今のところは「TrapPrefab」と同じでいいですが、見た目で判別できる様にマテリアルを変更するのもいいでしょう。
(この記事では「TrapPrefab」を緑に、「FoodTrapPrefab」は赤色にしています。また、「Model」のスケールをY方向につぶれる様に設定しています。例: X=0.5,Y=0.2,Z=0.5 )
マップデータに罠の位置情報を組み込む
素材ができたので、次はマップデータに敵を組み込んでいきましょう!
「Map」コンポーネントを次の内容を追加してください。
1 2 3 4 5 |
public enum MassType { //… Trap, FoodTrap, } |
次にシーン上の「Map」コンポーネントのMassDataListに次の内容を追加してください。
まとめ
今回の記事では罠を作成してダンジョンマップに配置しました。プレイヤーが罠にかかると様々な悪影響を与えるようになりました。
罠と宝箱は同じような処理で作成しています。これらの罠システムは拡張することができるので、お好みの罠を追加していくのもいいでしょう。
- 罠用のプレハブ、マップデータの作成
- 体力減少の罠の作成
- 食料減少の罠の作成
- プレイヤーが罠にかかるようにPlayer.csを修正
それでは次の記事に行ってみましょう。
次はいよいよ完全なダンジョン自動生成システムを作り上げます。
コメント