【Unity】シーンを切り替える方法(切り替えるボタンを作成)

Unity

スポンサーリンク

ボタンのクリックイベントにシーンを切り替えるイベントを実装して、シーンを切り替える方法です。

完成動作

やり方

前提

切替前のシーンを作成

1.以下のように"スタート"ボタンを作成

2."Start"という名前でシーンを保存

<切替後のシーンを作成>

1.以下のように適当なゲームオブジェクトを置く

2."Scene1″という名前でシーンを保存

シーンを切り替えるスクリプトを作成

ChangeScene.csという名前のスクリプトを作成して、以下のコードを記載する。
※2パターンあるので、それぞれ紹介します。

パターン1 現在のビルド番号を取得してそれに+1したビルド番号を読み込む。

using UnityEngine;
using UnityEngine.SceneManagement;

public class ChangeScene : MonoBehaviour
{
	public void NextScene()
	{       
		// 現在のシーンを取得
		Scene scene = SceneManager.GetActiveScene();
		// 現在のシーンのビルド番号を取得
		int buildIndex = scene.buildIndex;
		// 現在のシーンのビルド番号を+1(次のシーンのビルド番号になる)
		buildIndex = buildIndex + 1;
		// 取得したビルド番号のシーン(現在のシーン)を読み込む
		SceneManager.LoadScene(buildIndex);
	}
}

パターン2 読み込むシーンの名前を直接指定する。

using UnityEngine;
using UnityEngine.SceneManagement;

public class ChangeScene : MonoBehaviour
{
	public void NextScene()
	{
		// 読み込むシーンの名前を直接指定
		SceneManager.LoadScene("Scene1");
	}
}

シーンを切り替えるスクリプトをアタッチ

1."Start"シーンを開く

2.空のGameObjectを作成

3.作成した空のGameObjectに"ChangeScene"スクリプトをアタッチ

スタートボタンのクリックイベントを設定

1.スタートボタンのInspectorタブの右下の"On Click ()"の"+"を押下

以下のようになる。

2.クリックイベントに空のGameObjectにアタッチした “ChangeScene"スクリプトのNextScene()を設定

2-1.以下の赤枠をクリック

2-2."Scene"タブを押下し、その中の"GameObject"オブジェクトを押下
  ※“Assets"タブではなく"Scene"タブから選ぶことが重要

2-3.左下の枠に"GameObject"が入ったことを確認

2-4."No Function"を押下して、以下のように選択して、NextScene()を押下

これでスタートボタンをクリックすると"ChangeScene"スクリプトのNextScene()が実行される。

ビルド設定

※ここを設定しないと、以下のようなエラーが出るので注意

Scene with build index: 2 couldn't be loaded because it has not been added to the build settings.
To add a scene to the build settings use the menu File->Build Settings...
UnityEngine.SceneManagement.SceneManager:LoadScene (int)
ChangeScene:NextScene () (at Assets/ChangeScene.cs:15)
UnityEngine.EventSystems.EventSystem:Update ()

1.左上の"File"→"Build Settings"を押下

2.表示されたウィンドウの中の"Add Open Scenes"を押下して、現在表示しているシーン(“Start"シーン)を加える。
  ※"Start"シーンのファイルをこの枠にドラックアンドドロップしても良い。

以下のようになる。

3."Scene1″シーンを枠内にドラックアンドドロップ

以下のようになる。

※各シーンの右端にある数字が"ビルド番号"

完成

ゲームを実行して、スタートボタンを押すと"Scene1″シーンに

Unity

Posted by ton