トップ 一覧 検索 ヘルプ RSS ログイン

unity_script_change_sceneの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!シーンを切り替える

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

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

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

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キーを押す)とシーンをトグルで切り替えます。
入力については「[[自キャラを動かす|unity_move_mychar]]」を参照。

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からシーンをドラッグして追加。
{{ref_image unity_scene_chane_02.png}}
Build Settingsはこの後閉じてOK。
これで、シーンの切り替えが動作するようになります。

!!最後にロードされたレベル(シーン)を判別
 int levelIndex = Application.loadedLevel;
 string levelName = Application.loadedLevelName;
「Application.loadedLevel」で最後にロードされたレベル番号を取得、
「Application.loadedLevelNam」で最後にロードされたレベル名を取得。
 

----
{{lastmodified}}