3分でできる!Unityでシーン(Scene)を移動・遷移・切り替える方法




Unityでシーンを切り替えたい!遷移させたい!

どうも、Linです。水は絶対2Lを選びます。

 

「Unityでシーンを切り替えたい!」というときありますよね?

たくさんシーンは作ったものはいいけれども、シーンを遷移させる方法が分からなければ、シーンの持ち腐れになってしまいます。

今日は、恥ずかしき初心者ながら、Unityでシーンを移動させる方法をマスターしたので、忘れないうちに書き留めておこうと思います。

よかったら参考にしてみてください。

 

 

Unityでシーンを切り替える・遷移させる方法

Unityのシーンは次の3つのことをすれば切り替えられますよ。

  1. using UnityEngine.SceneManagement; 追加
  2. SceneManager.LoadSceneでシーンを切り替える
  3. Build SettingのScenes In Buildにシーンを追加

 

 

今回は例として、

  • red
  • green

という2つのシーンを用意して、こいつらを切り替えるゲームを作ってみましょう。

「red」は名前の通り、色が赤い平面があるシーン。

unity シーン 移動 遷移 切り替え

一方、「green」は期待値の通り、色が緑の平面があるシーンです。

unity シーン 移動 遷移 切り替え

今回は、「red」から「green」にシーンを移動させてみましょう。

 

 

Step1. 「red」に空の「GameObject」作成

シーンの移動をさせるスクリプトをアタッチするために空のオブジェクトを作成。

 

unity シーン 移動 遷移 切り替え

 

「Command + Shift + N」を押せば一瞬で作ることができますよ。

 

 

Step2. 「red.cs」をアタッチ

新規スクリプトの「red」を作成。

そいつを先ほど作成した「GameObject」にアタッチしましょう。

unity シーン 移動 遷移 切り替え

 

Step3. スクリプト編集

さて、いよいよスクリプトの編集です。

先ほど作成したred.csを、次のように編集してみましょう。

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class red : MonoBehaviour {

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {

		if (Input.GetMouseButtonDown (0)) {
			SceneManager.LoadScene ("green");
		}	
	}
}

 

ポイントは、

  1. UnityEngine.SceneManagement
  2. SceneManager.LoadScene

の2つ。

 

まず、

using UnityEngine.SceneManagement

はスクリプト内でシーンの移動や遷移を行う際に必要なコードです。

こいつを文頭にぶち込んでおきましょう。

次に紹介する「SceneManager.LoadScene 」というシーンを遷移させるメソッドを使うために必要になってくるのです。

 

「SceneManager.LoadScene」 は引数に設定したシーンを呼び出すことができるメソッド。

スクリプト中の、

SceneManager.LoadScene ("green");

では、引数に設定した「green」という名前のシーンを呼び出しているわけです。

 

きになるifの条件に設定している、

Input.GetMouseButtonDown (0)

ですが、これはマウスが左クリックされるとtrueを返します。

 

故に、このプログラムでは、

マウスを左クリックしたらgreenというシーンに遷移する

ということが起きるはずですね。

 

Step4. ビルドセッティング

あともう一つやることが。。

最後に、ビルドセッティングから読み込みたいシーンを設定してあげる必要があります。

 

Fileから「 Build Settings」と進んで、

 

unity シーン 移動 遷移 切り替え

 

読み込みたいシーンを全て「Scene in Build」にドラッグ&ドロップしましょう。

 

 

これでシーン移動の準備完了です。

早速プレイしてみると、

 

https://gyazo.com/c2245bb46c6f85b0aa38e152286e8e38

 

マウスをクリックするとシーンredからgreenへ移動できていることが確認できました!

 

 

Unityでシーンの移動は意外と簡単!

以上がUnityのシーン遷移方法でした。

  1. GameObject作成
  2. スクリプトアタッチ
  3. スクリプト編集
  4. ビルドセッティング

の4ステップで気軽にシーンを移動できそうですね。

Unityのシーン移動をマスターしたら今度は「カメラを追従させる方法」に挑戦してみてくださいね。

 

それでは!

Lin




音生入力で楽にブログを書く技が満載!
ブログ音声入力術

音声入力の使い方から文章を書くコツまで完全網羅。ブログを書きたいすべての人向けの電子書籍




16 件のコメント

  • 凄くわかりやすいです。
    おかげで無事にスクリーン遷移が出来ました。
    ありがとうございます!

  • どこの誰よりも分かりやすかったです!
    unityで簡単なクイズアプリの作り方みたいな記事も書いて欲しいです!

  • 上のスクリプトを使わせてもらい、””redと”green”のところだけ変えて適用しようと思ったのですが、「スクリプトに不備がある」等の表示が出てきてシーンが変わりませんでした。どうすればよいでしょうか?

  • 早速使わせてもらおうと思いましたが、

    -型または名前空間UnityEngineが見つかりませんでした。
    Usingディレクティブまたはアセンブリ参照が不足しています。-

    -型または名前空間MonoBehaviourが見つかりませんでしたが見つかりませんでした。Usingディレクティブまたはアセンブリ参照が不足しています。-
    と表示されてしまいます。
    Unity 2018.1

    • 名前空間周りのエラーみたいですので、コードの冒頭に
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      using UnityEngine.SceneManagement;
      の4つの文が書いてあるか確認してみてください!

  • すいません。調べてみたら2018なのにMonoDevelopを使用していたせいでした。おかげさまで無事に動きました。
    ありがとうございました!

  • こんにちは
    Hololensの開発で初めてUnityを触れたので初歩的なことでも困っていてすごく助かりました。! タイトルシーンからゲームシーンというシーン切り替えを行ったのですが、シーンごとのビューではきちんとオブジェクトが表示されているのにタイトルシーンから再生して切り替えゲームシーンにしたときオブジェクトが表示されず困っています。

    • オブジェクトの読み込みに時間がかかってしまっているのかもしれませんね!
      ぼくもそういう時ありましたがしばらく経つとオブジェクトが表示されました!

  • とても分かりやすかったです!
    ただredからgreenには行けましたが、同じボタンでgreenからredに戻る方法が知りたいです。

    • ボタンに紐付けた関数に
      SceneManager.LoadScene (“red”);
      を入れてif文で条件分岐させてやるとできそうです!
      たぶんbool値の変数を作ってみるといいと思います!

  • こちらの記事のおかげで一日詰まっていた問題が解決しました…本当にありがとうございます!!!!

  • コメントを残す

    メールアドレスが公開されることはありません。