Unityでタイトル画面からゲーム画面へ移動したり、ゲームオーバー後にリザルト画面へ切り替えたりするときに必要になるのが「シーン切り替え」です。
ところが、初めて実装する場合は「ボタンを押しても反応しない」「エラーが出る」「コードを書いたのに画面が変わらない」といった問題に遭遇しやすいものです。
実際、シーン切り替えがうまく動かない原因の多くは、スクリプトの書き方ではなく設定ミスによるものです。そのため、コードだけを見ても解決しないケースが少なくありません。
タイトル画面、ステージ選択画面、ゲーム画面、リザルト画面などを作るうえで、シーン切り替えはほぼ必須となる機能です。早い段階で正しい手順を覚えておくと、今後のゲーム制作がかなりスムーズになります。
今回は、シーンの作成からBuild Settingsへの登録、SceneManager.LoadSceneの使い方、UIボタンとの連携方法まで順番に確認していきましょう。
Unityでシーンを切り替える手順【まずは全体像を理解しよう】
シーン切り替えは難しそうに見えますが、実際に必要な作業はそれほど多くありません。
まずは全体の流れを把握しておくと、途中で何をしているのか分からなくなることを防げます。
シーンとはゲームの画面単位
Unityのシーンとは、ゲーム内の画面やステージを管理する単位のことです。
例えば次のような画面は、それぞれ別のシーンとして作成されることがよくあります。
- タイトル画面
- ステージ選択画面
- ゲームプレイ画面
- リザルト画面
- 設定画面
ゲームを遊んでいると画面が切り替わる場面はたくさんありますが、Unityでは「別のシーンを読み込む」ことで実現するケースが一般的です。
シーン切り替えの流れ
Unityでシーンを切り替える場合は、基本的に次の3ステップで実装します。
- シーンを作成する
- Build Settingsに登録する
- SceneManager.LoadSceneを実行する
特に重要なのがBuild Settingsへの登録です。
初心者の方はスクリプトばかり確認してしまいがちですが、シーンがBuild Settingsに登録されていないと、コードが正しくてもシーンは切り替わりません。
私もUnityを始めた頃は、コードのミスだと思って何度も書き直した結果、実はBuild Settingsへの登録忘れだったという経験がありました。
まず覚えるべき実装パターン
シーン切り替えには複数の方法がありますが、最初はシーン名を指定して読み込む方法を覚えれば十分です。
例えばタイトル画面からゲーム画面へ移動する場合は、次のようなイメージになります。
- Titleシーンを表示する
- スタートボタンを押す
- Gameシーンを読み込む
この流れだけでも、多くのゲームで使われる基本的な画面遷移を実装できます。
まずはシンプルなシーン切り替えを確実に動かし、その後でローディング画面やフェード演出などを追加していくのがおすすめです。
Unityでシーンを作成してBuild Settingsに登録する方法
シーン切り替えを実装する前に、まずは遷移先となるシーンを作成し、Unityに認識させる必要があります。
ここで設定を忘れると、スクリプトが正しくてもシーンを読み込めません。初心者が最もつまずきやすいポイントなので、順番に確認していきましょう。
シーンを作成する
まずは切り替え先のシーンを作成します。
- Projectウィンドウ内で右クリックする
- Create → Sceneを選択する
- 作成したシーンに名前を付ける
- Ctrl + S(MacはCommand + S)で保存する

例えば次のような名前にしておくと管理しやすくなります。
- Title
- Game
- Result
- StageSelect
シーン名は後でスクリプトから指定するため、分かりやすい名前を付けておくのがおすすめです。
Build Settingsへ登録する
シーンを作成しただけでは、SceneManager.LoadSceneから読み込むことはできません。
Unityに「このシーンはゲーム内で使用します」と伝えるために、Build Settingsへ登録する必要があります。

- File → Build Settingsを開く
- 登録したいシーンを開く
- Add Open Scenesをクリックする
登録が完了すると、「Scenes In Build」の一覧にシーンが表示されます。
複数のシーンを使用する場合は、タイトル画面やゲーム画面など、切り替え対象となるシーンをすべて登録しておきましょう。
| シーン名 | 登録が必要か |
|---|---|
| Title | 必要 |
| Game | 必要 |
| Result | 必要 |
| テスト用シーン | 必要に応じて |
登録漏れで発生するエラー
Build Settingsに登録されていないシーンを読み込もうとすると、Consoleにエラーが表示されます。
代表的なのは次のようなケースです。
- TitleからGameへ移動しようとしたらエラーになる
- Editorでは動くと思ったがビルド後に動かない
- シーン名は合っているのに読み込めない
シーン切り替えが失敗した場合は、まずBuild Settingsの登録状況を確認してみてください。
特に実機ビルド時のトラブルはBuild Settingsが原因になっていることも少なくありません。

次は実際にSceneManager.LoadSceneを使ってシーンを切り替える方法を見ていきましょう。
UnityでSceneManager.LoadSceneを使う方法
シーンを作成してBuild Settingsへ登録できたら、次は実際にシーンを切り替える処理を作成します。
Unityでは、SceneManagerクラスのLoadScene()メソッドを使うことで別のシーンを読み込めます。
SceneManagerを使う準備
まずはシーン切り替え用のスクリプトを作成しましょう。
Projectウィンドウで右クリックし、Create → C# Scriptを選択します。
例えば「SceneChanger」という名前で作成します。
その後、スクリプトの先頭に以下のusing文を追加してください。
using UnityEngine.SceneManagement;
この記述がないと、SceneManagerを使用できずコンパイルエラーになります。
シーン名で切り替える方法
最もよく使われるのが、シーン名を指定して読み込む方法です。
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneChanger : MonoBehaviour
{
public void ChangeScene()
{
SceneManager.LoadScene("Game");
}
}
このコードを実行すると、「Game」という名前のシーンが読み込まれます。
タイトル画面からゲーム画面へ移動する場合や、ゲームオーバー後にリザルト画面へ移動する場合など、多くのケースでこの方法が使われます。
なお、「Game」の部分はBuild Settingsに登録されているシーン名と完全に一致させる必要があります。
例えば以下のような違いでもエラーになる可能性があります。
- Game → game
- Game → GameScene
- Game → Game (末尾にスペースがある)
シーン切り替えができない場合は、まずシーン名を確認してみましょう。
初心者はシーン名指定がおすすめ
これからシーン切り替えを覚える場合は、シーン名指定をおすすめします。
| 方法 | メリット | 注意点 |
|---|---|---|
| シーン名指定 | 分かりやすく管理しやすい | 名前の入力ミスに注意 |
| インデックス指定 | 記述が短い | 順番変更に弱い |
また、初心者の方が混同しやすいのですが、シーン切り替えはSetActive()による表示切り替えとは別の機能です。
SetActive(false)はオブジェクトを非表示にするだけで、別のシーンを読み込むわけではありません。
画面そのものを切り替えたい場合は、SceneManager.LoadScene()を使用します。
SceneManager.LoadScene(1);
のようにBuild Settingsの番号を使う方法もありますが、シーンの順番変更に弱いため、初心者のうちはシーン名指定がおすすめです。
Unityでボタンからシーンを切り替える方法
ゲームでは、タイトル画面の「スタート」ボタンやリザルト画面の「リトライ」ボタンなど、UIボタンからシーンを切り替える場面がよくあります。
ここでは、ボタンをクリックしたときに別のシーンへ移動する方法を確認していきましょう。
UIボタンを作成する
まずはシーン内にボタンを配置します。

- Hierarchyウィンドウで右クリックする
- UI → Buttonを選択する
- CanvasとButtonが自動生成される
- ボタンのテキストを変更する
例えば「ゲーム開始」や「次へ」といった分かりやすい名前にしておくとよいでしょう。
標準UIでも十分実装できますが、見た目を整えたい場合はUIアセットを活用する方法もあります。
Better UI
✅アセットストアでチェックする
OnClickに登録する
次に、ボタンが押されたときにシーン切り替え処理を実行できるよう設定します。
まずは以下のようなスクリプトを作成してください。
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneChanger : MonoBehaviour
{
public void ChangeScene()
{
SceneManager.LoadScene("シーン名");
}
}
作成したスクリプトを空のGameObjectなどにアタッチします。
その後、ButtonコンポーネントのOn Click ()に登録します。
- Buttonオブジェクトを選択する
- InspectorのOn Click ()を探す
- 「+」ボタンを押す
- SceneChangerを付けたオブジェクトをドラッグする
- SceneChanger → ChangeScene() を選択する
これでボタンが押されたときにChangeScene()が実行されるようになります。
実際に動作確認する
設定が終わったら、Playボタンを押して動作確認してみましょう。
正常に設定できていれば、ボタンをクリックした瞬間に指定したシーンへ移動します。
もし切り替わらない場合は、次の項目を確認してみてください。
- SceneChangerがオブジェクトにアタッチされているか
- On Click ()に正しいオブジェクトが登録されているか
- ChangeScene()がpublicになっているか
- Build Settingsにシーンが登録されているか
- シーン名が一致しているか
また、ボタン自体が反応しない場合はUI設定に問題がある可能性があります。
ボタン経由のシーン切り替えは、タイトル画面や設定画面など多くの場面で使われるため、ここでしっかり動かせるようになれば今後のゲーム制作でも役立ちます。
Unityでシーン切り替えができない時の対処法
シーン切り替えの実装自体はそれほど難しくありませんが、設定が1つでも不足していると正常に動作しません。
特に初心者の方はスクリプトのミスを疑いがちですが、実際には設定ミスが原因になっているケースが非常に多いです。
シーンが切り替わらない場合は、次の項目を順番に確認してみましょう。
Build Settingsに登録されていない
最も多い原因がBuild Settingsへの登録忘れです。
SceneManager.LoadScene()で読み込めるのは、Build Settingsに登録されているシーンだけです。
例えば「Game」シーンを作成していても、Build Settingsに登録されていなければ読み込みに失敗します。
まずは以下を確認しましょう。
- File → Build Settingsを開く
- Scenes In Buildを確認する
- 対象シーンが一覧に表示されているか確認する
シーン名が違う
シーン名の入力ミスもよくある原因です。
例えば実際のシーン名が「Game」なのに、コードで「game」と記述している場合は読み込みできません。
SceneManager.LoadScene("シーン名");
特に次のようなミスが起こりやすいです。
- 大文字と小文字が違う
- スペルミスがある
- シーン名を後から変更した
- 末尾に不要なスペースが入っている
シーン切り替えが失敗した場合は、Projectウィンドウのシーン名とコードを見比べてみてください。
スクリプトが実行されていない
コード自体は正しくても、メソッドが呼び出されていなければシーンは切り替わりません。
ボタンから実行する場合は、On Click ()の設定を確認しましょう。
また、スクリプトがアタッチされていないケースもあります。
確認ポイントは以下の通りです。
- スクリプトがGameObjectにアタッチされているか
- ボタンのOn Click ()に登録されているか
- 実行するメソッドがpublicになっているか
Consoleにエラーが出ている
シーン切り替えが動かないときは、まずConsoleウィンドウを確認する習慣を付けるのがおすすめです。
Unityは問題が発生するとエラーメッセージを表示してくれます。
例えば次のようなエラーが表示されることがあります。
- シーンが見つからない
- NullReferenceException
- コンパイルエラー
エラー内容を確認するだけで原因が分かるケースも少なくありません。
正常な状態のチェックリスト
シーン切り替えが正常に動作する状態は次の通りです。
| 確認項目 | 正常な状態 |
|---|---|
| シーン作成 | 保存済み |
| Build Settings | 登録済み |
| シーン名 | コードと一致 |
| using文 | SceneManagement追加済み |
| スクリプト | アタッチ済み |
| On Click | 登録済み |
| Console | エラーなし |
上記をすべて確認しても解決しない場合は、プロジェクト全体の設定や別のエラーが影響している可能性があります。
シーン切り替えのトラブルは、落ち着いて1つずつ確認していけば解決できることがほとんどです。
まとめ|Unityのシーン切り替えは3ステップで実装できる
Unityでシーンを切り替える基本は、次の3ステップです。
- シーンを作成する
- Build Settingsに登録する
- SceneManager.LoadSceneを実行する
タイトル画面からゲーム画面へ移動したい場合も、リザルト画面からもう一度ゲームを始めたい場合も、基本の流れは同じです。
まずはシーン名を指定する方法で実装すると、どの画面へ移動するのか分かりやすく、管理もしやすくなります。
SceneManager.LoadScene("Game");
うまく動かないときは、いきなりコードを書き直すのではなく、Build Settingsへの登録、シーン名、On Clickの設定、Consoleエラーを順番に確認してみてください。
シーン切り替えに慣れてきたら、次はロード中の画面表示やBGMの引き継ぎにも挑戦すると、ゲームらしい画面遷移に近づきます。


Unityの基本操作やC#の基礎から体系的に学びたい場合は、入門書を手元に置いておくのも便利です。
Unityの教科書 Unity 6完全対応版
✅ Amazonでチェックする|✅ 楽天でチェックする










※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。