TopDown Engine 入門 Part 8 ~シーン遷移編 1~

異なるシーン間を移動する

今まではずっと単一のシーンで制作してきましたが、タイトル画面や違うレベルの画面(フィールド←→ダンジョンなど)を制作する場合、別のシーンにすることが多いでしょう。今回は、こうしたシーン間の遷移を実装していきます。

というわけで、仮のタイトル画面を用意しました。タイトル画面で何かキーが押されたら、レベル画面へ遷移させます。

f:id:Gigacee:20200702130910p:plain

シーン名は以下のようにしておきます。

  • 今まで作ってきたレベル画面:sandbox_level
  • タイトル画面:sandbox_title

また、Build Settings にこれらのシーンを追加しておくのを忘れないでください。

f:id:Gigacee:20200702130925p:plain

Loading Scene Manager

ここで、本講座で初めて、スクリプトが出てきます! 以下のようなスクリプトを書いてみましょう。

// SceneTransition.cs

using UnityEngine;

public class SceneTransition : MonoBehaviour
{
    void Update()
    {
        if (Input.anyKeyDown)
        {
            // ここでシーン遷移
        }
    }
}

そして、タイトル画面に空の GameObject を作成し、スクリプトをアタッチしてください。

スクリプト中のコメントにもあるように、Input.anyKeyDownが true になったらシーンを遷移させるようにします。Unity 標準のSceneManager.LoadSceneを使うこともできますが、ここでは TopDown Engine に備わっている機能を使ってみます。と言っても使い方は簡単で、以下の関数を実行するだけです。

MoreMountains.Tools.LoadingSceneManager.LoadScene("scene_name");

MoreMountains.Tools とは、More Mountains 製の Unity アセットで共通して使われている、様々な汎用的な機能のことです。シーン遷移はトップダウンビューのゲームに限らずあらゆるゲームで使われる機能なので、TopDownEngine ではなく MoreMountains.Tools にまとめられているのですね。

では、上記のスクリプトを SceneTransition.cs に追記しましょう。

// SceneTransition.cs

using MoreMountains.Tools;
using UnityEngine;

public class SceneTransition : MonoBehaviour
{
    void Update()
    {
        if (Input.anyKeyDown)
        {
            // ここでシーン遷移
            LoadingSceneManager.LoadScene("sandbox_level");
        }
    }
}

それができたら、タイトル画面のシーンを再生して、シーン遷移ができるかどうか確認してみてください。

f:id:Gigacee:20200702130942g:plain

Unity 標準の SceneManager と、More Mountains の LoadingSceneManager の違い

再生してみたら分かるとおり、特に何もしなくてもシーン遷移中にローディング画面が挿入されます。

f:id:Gigacee:20200702131001p:plain

Unity 標準の SceneManager を使う場合は自分でローディング画面を実装する必要がありましたが、LoadingSceneManager を使えばその必要も無いわけですね。

もちろん、ローディング画面をカスタマイズすることも可能です。ローディング画面のシーンは ThirdParty/MoreMountains/MMTools/Tools/SceneLoading/LoadingScreen.unity にありますので、ロゴをオリジナルのものにしたり、プログレスバーを好みのデザインに変えたりしても良いでしょう。


NEXTTopDown Engine 入門 Part 9 ~シーン遷移編 2~

PREVTopDown Engine 入門 Part 7 ~UI 編~


The coloring of this site is Dracula PRO🧛🏻‍♂️
This website uses the FontAwesome icons licensed under CC BY 4.0.

2020 GIGA CREATION