LoginSignup
4
4

More than 3 years have passed since last update.

unityで複数のステージレベルを管理する方法

Last updated at Posted at 2020-11-10

実現したいこと

ハイパーカジュアルゲームの「Level1をクリアしたらLevel2に進む」のようなゲームの進行を実装したい。

方法

UIBottunを設置し、UIButtonをクリックしたら次のシーンを読み込むという方法で行います。
次のシーンを認識する方法には「build index」という値を使用します。「build index」は、Scenes In Buildに設定したSceneに与えられる固定値です。
*下の画像右側の「0」「1」「2」の数字が「build index」です。Scene/Level1のbuild indexは0です。
キャプチャ.PNG
ポイントとなるコードは2種類あります。
1つ目は、Build Indexを取得するためのコードです。
int index = SceneManager.GetActiveScene().buildIndex;
GetActiveScene(今開いているScene)のbuildIndexを取得してint型の変数indexに代入しています。頭にSceneManager.と記述する理由はGetActiveSceneメソッドがSceneManagerクラスのものだからです。

2つ目は、 指定したSceneをロードするためのコードです。
SceneManager.LoadScene(index);
先ほどのSceneManager.GetActiveScene().buildIndexで取得したbuild indexの値と紐づくSceneをロードすることができます。

手順

1.Sceneを2つ作成し、名称をLevel1、Level2とする。
2.Hierarchy>UI>Buttonからボタンを作成する。
3.新規スクリプトを1つ作成します。スクリプトの中身はこのように記述します。

UIManager.cs
using UnityEngine;
using UnityEngine.SceneManagement;
public class UIManager : MonoBehaviour
{
    public int index;

    public void NextStage()
    {
        int index = SceneManager.GetActiveScene().buildIndex;
        index++;
        SceneManager.LoadScene(index);
        Debug.Log(index);      
    }
    public void RetryStage()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }
}

4.空オブジェクトを作成して作成したスクリプトをアタッチします。
5.Button>Inspector>ButtonコンポーネントにあるOnClick()メソッドの+マークをおして、UIManagerで作成したNextStage()メソッドを設定します。
キャプチャ.PNG
6.File>BuildSettings>Scenes In Buildに、使用するSceneを設定します。

これで完成です!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4