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を、次のように編集してみましょう。
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」 は引数に設定したシーンを呼び出すことができるメソッド。
スクリプト中の、
SceneManager.LoadScene ("green");
では、引数に設定した「green」という名前のシーンを呼び出しているわけです。
きになるifの条件に設定している、
Input.GetMouseButtonDown (0)
ですが、これはマウスが左クリックされるとtrueを返します。
故に、このプログラムでは、
マウスを左クリックしたらgreenというシーンに遷移する
ということが起きるはずですね。
Step4. ビルドセッティング
あともう一つやることが。。
最後に、ビルドセッティングから読み込みたいシーンを設定してあげる必要があります。
Fileから「 Build Settings」と進んで、

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

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

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

おそらく、ブロガー。
今年でフリーランス 6年目。