Unityでシーンを切り替えたい!遷移させたい!
どうも、Linです。水は絶対2Lを選びます。
「Unityでシーンを切り替えたい!」というときありますよね?
たくさんシーンは作ったものはいいけれども、シーンを遷移させる方法が分からなければ、シーンの持ち腐れになってしまいます。
今日は、恥ずかしき初心者ながら、Unityでシーンを移動させる方法をマスターしたので、忘れないうちに書き留めておこうと思います。
よかったら参考にしてみてください。
Unityでシーンを切り替える・遷移させる方法
Unityのシーンは次の3つのことをすれば切り替えられますよ。
- using UnityEngine.SceneManagement; 追加
- SceneManager.LoadSceneでシーンを切り替える
- Build SettingのScenes In Buildにシーンを追加
今回は例として、
- red
- green
という2つのシーンを用意して、こいつらを切り替えるゲームを作ってみましょう。
「red」は名前の通り、色が赤い平面があるシーン。

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

今回は、「red」から「green」にシーンを移動させてみましょう。
Step1. 「red」に空の「GameObject」作成
シーンの移動をさせるスクリプトをアタッチするために空のオブジェクトを作成。

「Command + Shift + N」を押せば一瞬で作ることができますよ。
Step2. 「red.cs」をアタッチ
新規スクリプトの「red」を作成。
そいつを先ほど作成した「GameObject」にアタッチしましょう。

Step3. スクリプト編集
さて、いよいよスクリプトの編集です。
先ほど作成したred.csを、次のように編集してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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"); } } } |
ポイントは、
- UnityEngine.SceneManagement
- SceneManager.LoadScene
の2つ。
まず、
using UnityEngine.SceneManagement
はスクリプト内でシーンの移動や遷移を行う際に必要なコードです。
こいつを文頭にぶち込んでおきましょう。
次に紹介する「SceneManager.LoadScene 」というシーンを遷移させるメソッドを使うために必要になってくるのです。
「SceneManager.LoadScene」 は引数に設定したシーンを呼び出すことができるメソッド。
スクリプト中の、
1 |
SceneManager.LoadScene ("green"); |
では、引数に設定した「green」という名前のシーンを呼び出しているわけです。
きになるifの条件に設定している、
1 |
Input.GetMouseButtonDown (0) |
ですが、これはマウスが左クリックされるとtrueを返します。
故に、このプログラムでは、
マウスを左クリックしたらgreenというシーンに遷移する
ということが起きるはずですね。
Step4. ビルドセッティング
あともう一つやることが。。
最後に、ビルドセッティングから読み込みたいシーンを設定してあげる必要があります。
Fileから「 Build Settings」と進んで、

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

これでシーン移動の準備完了です。
早速プレイしてみると、

マウスをクリックするとシーンredからgreenへ移動できていることが確認できました!
Unityでシーンの移動は意外と簡単!
以上がUnityのシーン遷移方法でした。
- GameObject作成
- スクリプトアタッチ
- スクリプト編集
- ビルドセッティング
の4ステップで気軽にシーンを移動できそうですね。
Unityのシーン移動をマスターしたら今度は「カメラを追従させる方法」に挑戦してみてくださいね。
それでは!
Lin

おそらく、ブロガー。現在ホテル暮らしで全国フラフラしています。
ネット広告代理店に1年3ヶ月勤め上げ、独立をして丸4年が経ちました。今年でフリーランス 5年目。
質問・ご意見・相談があればLINEで受け付けていますのでお気軽にどうぞ 。
凄くわかりやすいです。
おかげで無事にスクリーン遷移が出来ました。
ありがとうございます!
おおお!できましたか!!^^
どこの誰よりも分かりやすかったです!
unityで簡単なクイズアプリの作り方みたいな記事も書いて欲しいです!
ありがとうございます!
クイズアプリいいですね!やってみます^^
上のスクリプトを使わせてもらい、””redと”green”のところだけ変えて適用しようと思ったのですが、「スクリプトに不備がある」等の表示が出てきてシーンが変わりませんでした。どうすればよいでしょうか?
エラーの内容にもよると思いますが、「Can’t add script」というエラーでしたらスクリプトのクラス名をスクリプト名に直すとうまくいきますよー
早速使わせてもらおうと思いましたが、
-型または名前空間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値の変数を作ってみるといいと思います!
こちらの記事のおかげで一日詰まっていた問題が解決しました…本当にありがとうございます!!!!
おお!!よかったです!!