前回の記事ではUnity C#を用いてローグライクゲームに必須となる武器システムを作成しました。
前回の記事:
ですが、前回まででは最初に決めた武器しか持てない状態でした。
ローグライクゲームを作るからには、ダンジョンを進むにつれて新しい武器やアイテムを手に入れるようにしたいですよね。
そこで、今回の記事ではダンジョンに配置してアイテムを獲得できる宝箱システムを作成します。
また、武器だけでなくHP回復アイテムや満腹度を高める食料アイテムも獲得できるようにしていきます。
ローグライクダンジョン出てくる宝箱のプレハブを作成する
先に宝箱を表すプレハブを作成します。次の手順を行ってください。
- メニューから空のGameObjectを作成し、名前を「TreasurePrefab」にしてください。
- メニューのGameObject > 3DObject > 「Cube」をクリックし、GameObjectを作成してください。名前は「Model」にしてください。
- 作成した「Model」は「TreasurePrefab」の子GameObjectにしてください。
- 作成したGameObjectのサイズはお好みでいいですが、1マスに収まるぐらいにしましょう!
- ※お好みで好きなマテリアルを設定するのもいいでしょう。
(※「Model」は表示するモデルの位置調節に使用します。)
ここまでできたら、シーンの上の「TreasurePrefab」をプレハブ化してください。プレハブ化した後はシーンにある「TreasurePrefab」は削除してください。
ビジュアルをもっと良くしたい場合はアセットストアから素材を持ってきてModelと交換してあげればOKです(16記事目で見栄えの改善を行います)。
マップデータに宝箱データを組み込む
素材ができましたので、次はマップデータに宝箱を組み込んでいきましょう!
「Map」スクリプトに次の内容を追加してください。
1 2 3 4 |
public enum MassType { //… Treasure, } |
次にシーン上の「Map」コンポーネントを次の内容で修正してください。
修正内容は単純に既存データに宝箱のものを追加しただけになります。
1 2 3 4 5 6 |
//宝箱 prefab = 「TreasurePrefab」プレハブを設定 type = MassType.Treasure; mapChar = ‘I’; isRoad = false; isCharacter = true; |
マップデータに宝箱を組み込んだので、次は宝箱用のスクリプトを作成しましょう!
宝箱のコンポーネントの名前は「Treasure」スクリプトにしてください。
「Treasure.cs」のC#スクリプトはMap上に置くアイテムなので、「MapObjectBase」の派生クラスにしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using System.Collections; using System.Collections.Generic; using UnityEngine; class Treasure : MapObjectBase { public enum Type { LifeUp, FoodUp, Weapon, } public Type CurrentType = Type.LifeUp; public int Value = 5; } |
「Treasure」スクリプトを作成したら、「TreasurePrefab」プレハブにアタッチしてください。
Treasureプレハブはそのまま使う場合、回復アイテムとして利用することを想定しています。
次にプレイヤーが宝箱を開けるようにしていきます。この講座ではプレイヤーが宝箱に移動しようとした時に、宝箱が開くようにします。
また、開いた時はプレイヤーは一度元にいたマスにとどまるようにします。
「Player.cs」を以下のように修正してください。
まとめ
今回の記事ではローグライクゲームにおける宝箱の処理を作成しました。
この講座で作成した宝箱は簡単なものしか用意していないので、読者側でもっと様々な効果を持つ宝箱イベントやアイテムを作ってみるのもいいでしょう。
その際は今回の講座で行ったように「Treasure」コンポーネントから派生したコンポーネントを作成して実装していくと便利です。
また、宝箱を開く時の演出を追加するのも良いですね。その際はUnityのAnimatorコンポーネントを利用すると便利に設定できますが、それについてはこの講座では扱いません。
ドラクエ風2DレトロRPG講座やゼルダ風3Dアクションゲーム講座でアニメーターを利用した実践例を豊富に紹介しているのでそのあたりを参考にしてみてもいいと思います。
この記事をまとめると以下のようになります。
- 宝箱用のプレハブ、マップデータの組み込み
- 体力回復用の宝箱の作成
- 食料回復用の宝箱の作成
- 武器用の宝箱の作成
それでは次の記事に行ってみましょう。次はダンジョン探索の難易度を高めてくれる罠システムを実装します。
コメント