トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

unity_script_change_scene

シーンを切り替える


1つのプロジェクトで複数のシーンを用意し、それを切り替える例を説明します。

以下のように2つのシーンを作成します。
シーンの保存は、メインメニューより「File」-「Save Scene」で行います。


スクリプトとして以下のようにしました。

SceneA.cs

using UnityEngine;
using System.Collections;

public class SceneA : MonoBehaviour {
    // Use this for initialization
    void Start () {
    }
    
    // Update is called once per frame
    void Update () {
    }
    
    void OnGUI () { 
        GUI.Label(new Rect(20, 40, 80, 20), "Scene A");
    }
}

SceneB.cs

using UnityEngine;
using System.Collections;

public class SceneB : MonoBehaviour {
    // Use this for initialization
    void Start () {
    }
    
    // Update is called once per frame
    void Update () {
    }
    
    void OnGUI () { 
        GUI.Label(new Rect(20, 40, 80, 20), "Scene B");
    }
}

GUIとして、左上に「Scene A」「SceneB」と表示するだけのものです。
それぞれのスクリプトをそれぞれのシーンのカラのGameObjectにアタッチしてます。

 スクリプトからシーンの呼び出し


ここではジャンプの操作(Spaceキーを押す)とシーンをトグルで切り替えます。
入力については「自キャラを動かす」を参照。

SceneA.csで

void FixedUpdate () {
  if (Input.GetButton("Jump")) {
    Application.LoadLevel("sceneB");
  }
}

SceneB.csで

void FixedUpdate () {
  if (Input.GetButton("Jump")) {
    Application.LoadLevel("sceneA");
  }
}

を追加。
「Application.LoadLevel」で指定のシーンに切り替えます。
これだけでは動作しません。

 Build Settingsにシーンを追加


メインメニューの「File」-「Build Settings」で、Assetからシーンをドラッグして追加。

Build Settingsはこの後閉じてOK。
これで、シーンの切り替えが動作するようになります。

 最後にロードされたレベル(シーン)を判別

int levelIndex = Application.loadedLevel;
string levelName = Application.loadedLevelName;

「Application.loadedLevel」で最後にロードされたレベル番号を取得、
「Application.loadedLevelNam」で最後にロードされたレベル名を取得。


最終更新時間:2014年04月11日 16時07分44秒