LobbyConnection ja - shun126/DungeonGenerator GitHub Wiki
ロビー接続ガイド
既存ロビーとダンジョンを繋げたい場合は、ADungeonGenerateActor の StartRoomSubLevelScriptActor を使う方法と、UDungeonSubLevelDatabase の StartRoom を使う方法があります。
いつ使うか
- すでにレベル内にあるロビーから、そのままダンジョンへ繋げたい
- スタート部屋を手作りサブレベルで管理したい
- パッケージ版でも開始部屋の見た目とサイズを固定したい
方法 A: 配置済みロビーを開始部屋として使う
ADungeonGenerateActor の StartRoomSubLevelScriptActor に、レベル内の ADungeonSubLevelScriptActor を指定します。
向いているケース
- すでにロビーがレベル内に存在する
- ロビーからダンジョンへ直接繋げたい
- 生成後に開始部屋の位置を既存ロビーへ揃えたい
手順
- ロビー側レベルに
ADungeonSubLevelScriptActorを配置します。 ADungeonGenerateActorのStartRoomSubLevelScriptActorにそのアクターを割り当てます。UDungeonGenerateParameterでMovePlayerStartToStartingPoint = falseを設定します。UDungeonGenerateParameterでStartLocationPolicy = NoAdjustmentを設定します。UseMultiStartは使わず、通常の 1 開始地点で生成します。
現行実装で重要な注意
UseMultiStartは未対応で、指定するとエラーになります- エディタでは
DungeonSubLevelDatabase.StartRoom未設定でも一時メタデータで動作します - パッケージ版では
DungeonSubLevelDatabase.StartRoomのメタデータが必要です DungeonSubLevelDatabase.StartRoomを設定している場合は、グリッドサイズ、部屋サイズ、レベルアセットがロビー側サブレベルと一致している必要があります
方法 B: スタート部屋サブレベルを生成側から差し込む
UDungeonSubLevelDatabase の StartRoom を使って、開始部屋を通常の生成フローに含めます。
向いているケース
- 開始部屋も生成設定アセット側で管理したい
- 既存ロビーを常駐させず、開始部屋をサブレベルとして扱いたい
- エディタとパッケージ版で同じメタデータを明示的に管理したい
手順
- 開始部屋用サブレベルに
ADungeonSubLevelScriptActorを配置します。 - グリッドサイズと部屋サイズを
UDungeonGenerateParameterに合わせます。 - UDungeonSubLevelDatabase.ja.md の
StartRoomにそのサブレベルを登録します。 Buildを実行してメタデータを更新します。UDungeonGenerateParameterのDungeonSubLevelDatabaseにそのアセットを割り当てます。
どちらを選ぶか
- 既存ロビーにそのまま繋ぎたい
方法 A - 開始部屋も生成アセット側で完結させたい
方法 B
次に読む
- ADungeonGenerateActor.ja.md
StartRoomSubLevelScriptActorを含む生成アクター側の設定を確認できます。 - UDungeonSubLevelDatabase.ja.md
StartRoomの登録やBuild手順を詳しく確認できます。