Unityでダンジョン自動生成

はい、お久しぶりです。 べーやんです。

だいぶ更新してなかったですが、またちょくちょく更新していこうかなと思います。 ゲーム業界に入って色々とバタバタしてたのですが、ようやく時間が取れ始めたので、 ゲーム制作始めました!

今日はタイトルの通り、ローグライクで欠かせないダンジョン自動生成部分を作っていこうと思います。 Unity 2019.2.11f1で作ってます!

リソース周りの準備

  • ブロック(床、壁)
    →壁に関しては、動的に生成するので、Resourcesフォルダーを用意してください。

  • シーン配置 床となるブロックを配置
    →今回は32×32で作成

実装内容

全体のフローとしては、以下の感じ。

  1. そのタイルのタイプを設定
  2. そのタイルタイプを元にオブジェクトを配置

1つのタイルに情報を持たせるため、以下のようなクラスを保持する フィールドデータ

  • 部屋の作成
    → 部屋データが必要となります。 部屋データ

→ 実際に部屋データを元に部屋を作成していく 部屋作成

経路探索結果をもとに、フィールドデータを上書きしていきます。 道作成

最後にフィールドタイプを元に、壁を生成していきます。 地形生成

最終成果