【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″シーンに
ディスカッション
コメント一覧
まだ、コメントがありません