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

Sponsored Link


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を、次のように編集してみましょう。

 

 

ポイントは、

  1. UnityEngine.SceneManagement
  2. SceneManager.LoadScene

の2つ。

 

まず、

using UnityEngine.SceneManagement

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

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

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

 

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

スクリプト中の、

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

 

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

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

 

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

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

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

 

Step4. ビルドセッティング

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

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

 

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

 

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

 

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

 

 

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

早速プレイしてみると、

 

https://gyazo.com/c2245bb46c6f85b0aa38e152286e8e38

 

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

 

 

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

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

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

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

 

「いや、シーン遷移できねえし・・・!」

と電柱にタックルしたくなっている方はteratailがオススメです。プロのエンジニアに質問できるので問題が解決するでしょう。

よかったら使ってみてくださいね。

 

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

 

それでは!

Lin

飯橋凛(Ihashi Lin)

新卒で入ったネット広告代理店を1年半で退職。
その後、副業として活動していたウェブメディア運営のフリーランスへ。
現在はプログラミングの勉強に励み、0からフリーエンジニアの道を目指す。最近はキムチをまとめ買いしている


Sponsored Link

14件のコメント

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

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

    1. ありがとうございます!
      クイズアプリいいですね!やってみます^^

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

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

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

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

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

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

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

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

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

    1. ボタンに紐付けた関数に
      SceneManager.LoadScene (“red”);
      を入れてやるとできそうです!

コメントはこちらからお願いします!



もう1本読んでみる