ローグライクゲームの作り方3 敵を出現させターン制ダンジョンゲームの基本システムを作る | Unity入門の森 ゲームの作り方

ローグライクゲームの作り方3 敵を出現させターン制ダンジョンゲームの基本システムを作る

Unity ローグライクゲームの作り方


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

前回の記事ではローグライクのプレイヤーキャラクターを作成し、マップ上で自由に移動できるようにしました。

前回の記事:

ローグライクゲームの作り方2 プレイヤーを用意してダンジョンを歩き回る
前回の記事では与えたマップデータからローグライクのダンジョンマップを生成する処理を作りました。 前回の記事: 今回の記事ではダンジョンマップにプレイヤーも生成し、実際にマップの中を移動できるようにしましょう。 プレイヤー用のプレハブを用意す...

今回の記事では敵オブジェクトを作成し、プレイヤーと同じようにマップ上に登場させてみましょう!


【Line登録者限定のプレゼントもあるよ!】

敵オブジェクト用のプレハブを作成する

先に敵を表すプレハブを作成します。次の手順を行ってください。

  • メニューから空のGameObjectを作成し、名前を「EnemyPrefab」にしてください。
  • メニューのGameObject > 3DObject > Sphereをクリックし、GameObjectを作成してください。名前は「Model」にしてください。
  • 作成した「Model」は「EnemyPrefab」の子GameObjectにしてください。
  • 「Model」の形状は好きなものでOKです。
  • ※お好みで好きなマテリアルを設定するのもいいでしょう。

(「Model」は表示するモデルの位置調節に使用します。)

ここまでできたら、シーンの上の「EnemyPrefab」をプレハブ化してください。プレハブ化した後はシーンにある「EnemyPrefab」は削除してください。

 

ゲームクリエイター専門学校の資料請求はこちら
【学歴不問・高卒、元ニートでも挑戦できる】

マップデータに敵の位置情報を組み込む

敵オブジェクトの素材ができたので、次はマップデータに敵を組み込んでいきましょう!

シーンに存在する「Map」コンポーネントの「massDataList」フィールドに次の内容を追加してください。

修正内容は単純に既存データに敵のデータを追加しただけになります。

追加する際は必ず先にMassType列挙型にEnemyを追加してください。

マップデータに敵を組み込んだので、次は敵の行動パターンを実装するためのC#スクリプトを作成しましょう!

敵のスクリプトの名前は「Enemy」にしてください。

「Enemy」スクリプトは「MapObjectBase」の派生クラスにしてください。

「Enemy」スクリプトを作成したら、「Enemy」プレハブにアタッチしてEnemyコンポーネントを作成しましょう。

ここまでできたら、再生時に敵が配置されるようになります。

適当にマップに敵を配置して確認してみましょう!

この記事ではマップデータを次のように変更しています。

ちなみに敵のいる場所に移動しようとしても移動できない状態になっているので、そちらも確認してみましょう。

敵を移動させる処理の作成 ターン制システムの導入

次に敵を移動させてみましょう!

敵はプレイヤーが移動した後に移動するようにします。

続きを読む

このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はUnity入門の森ショップ(https://unityforest.shop/)で講座閲覧権を取得してね。

まとめ

今回の記事では敵オブジェクトとその動作を記述したスクリプトを作成しました。

また、敵はプレイヤーと交互に行動してマップ上を移動してくるようにしました。

次の記事では敵がプレイヤー視認したら追いかけてくるようにするために「Enemy」スクリプトを拡張していきます。

また、色々な敵のバリエーションを増やす際も「Enemy」コンポーネントから派生させることで過去に作成したメソッド等を使い回すことができます。

この記事をまとめると以下のようになります。

  • 敵のプレハブを作成
  • マップデータへ敵のデータを組み込んだ。
  • 敵がマップ内を移動できるようにした。
  • プレイヤーと敵のターン制行動システムの基本を導入した。

それでは次の記事に行ってみましょう。

ローグライクゲームの作り方4 敵に視野を持たせてプレイヤーを追いかけるようにする
前回の記事では敵をマップに配置し移動できるようにしました。 さらに、プレイヤーと敵ターンの概念を導入し、お互いが交互に動けるようにC#スクリプトを作成しました。 前回の記事: 今回の記事では、敵がプレイヤーを見つけたら追いかけてくるように経...

Unity ローグライクゲームの作り方講座へ戻る>>



Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

コメント

  1. 匿名 より:

    このページ(作り方3)と作り方5に何か所かMapCharacterBaseとありますがMapObjectBaseの間違いではないかと思いました。
    まだまだ勉強不足なので無知による勘違いだとしたら失礼いたしました。

    • Unity入門の森 より:

      コメントありがとうございます。
      こちら、ご指摘の通りMapObjectBaseが正しいです。
      執筆当初CharacterBaseという名前を使っていたため一部残ってしまっておりました。
      訂正させていただきました。

タイトルとURLをコピーしました