レベル同士のシーン遷移
今回は、異なるシーンで作られたレベル同士を移動できるようにしてみましょう。
「sandbox_level2」というシーンを新しく用意し、以下のようなレベルを作りました。シーンは Build Settings にも忘れずに追加しておきます。
これを「レベル 2」とし、今までのレベルは「レベル 1」として扱います。レベル 1 のシーン名を、「sandbox_level1」に変更しておきましょう。
Point of Entry を設置する
レベル 2 にはレベル 1 へ繋がる洞穴が 2 つ存在し、それぞれ入るとレベル 1 の別の場所に出るようにします。
レベル同士の移動を実現するためには、まず移動先のレベルに【Point of Entry】を設置する必要があります。レベル 1 の Point of Entry は、下端中央の扉と上端中央の扉の 2 つです。それぞれの位置に空の GameObject を作成し、「PointOfEntry0」「PointOfEntry1」とリネームしましょう*1。これらは重要な地点なので、分かりやすいようにラベルアイコンを設定しておくのをおすすめします。
設置ができたら、それらを Level Manager の「Points of Entry」に設定します。
このとき、順番が
- PointOfEntry0
- PointOfEntry1
になるよう注意してください。
Go To Level Entry Point を設置する
次に、移動元となる地点にそれぞれ空の GameObject を作成し、「GoToLevelEntryPoint0」「GoToLevelEntryPoint1」とリネームした後、GoToLevelEntryPoint と Box Collider 2D をアタッチします。これらにも、ラベルアイコンを設定しておくと良いでしょう。
コンポーネントの設定は、以下のようにしてください。
- GoToLevelEntryPoint の「Activation Conditions」グループにある「Auto Activation」にチェックを入れる。
- 「Finish Level」グループにある「Level Name」に「sandbox_level1」と入力する。
- 「Points of Entry」グループにある「Use Entry Points」にチェックを入れる。
- 同じくの「Points of Entry」グループにある「Point Of Entry Index」に、それぞれ「0」「1」と入力する。
- Box Collider 2D の「Is Trigger」にチェックを入れる。
これで設置完了です。シーンを再生し、レベルを移動できるかどうかを確認してください。
Point Of Entry Index
Level Manager の「Points of Entry」に設定された順番が、GoToLevelEntryPoint の「Point Of Entry Index」に対応しています。なので、順番に気をつける必要があったのですね。これは配列なので、名称を 0 オリジンにしたのもそれが理由です。
補遺
レベル 2 → 1 の移動を実装できたら、逆のレベル 1 → 2 の移動も同じように実装します。このとき、Point of Entry と Go To Level Entry Point が重なっていると、移動完了直後に勝手に移動処理が走ってしまうので、ある程度離しておきましょう。
NEXTTopDown Engine 入門 Part 10 ~初期位置編~
PREVTopDown Engine 入門 Part 8 ~シーン遷移編 1~
*1:「~1」「~2」じゃないの? と思われるかもしれませんが、それは後ほど説明します。