Unityでシーン遷移・シーン切り替えを行う方法|ボタンで画面を切り替える手順を解説

はじめに

Unityでゲームを作っていると、

「タイトル画面からゲーム画面へ移動したい」
「ステージ選択画面から選んだステージへ移動したい」
「ゲームクリア後にリザルト画面へ切り替えたい」

といった場面があります。

このように、画面やステージを切り替える処理を「シーン遷移」と呼びます。

Unityでは、SceneManager.LoadScene() を使うことで、別のシーンへ移動できます。

この処理を使うと、タイトル画面からゲーム画面へ進む、ステージ選択画面から各ステージへ移動する、クリア後にリザルト画面へ切り替える、といった画面切り替えを実装できます。

この記事では、Unity初心者向けにシーン遷移の基本的な作り方を解説します。

シーンの準備、Build Settingsへの追加、ボタンを押して別シーンへ移動する方法、よくあるエラーまで順番に紹介します。

ステージ管理やセーブ機能と組み合わせることで、ステージ選択画面から各ステージへ移動したり、保存した進行状況に応じて画面を切り替えたりできるようになります。

この記事で分かること:

・Unityでシーン遷移を実装する基本の流れ
・SceneManager.LoadScene() の使い方
・複数のシーンを作成する方法
・Build Settingsにシーンを追加する理由
・ボタンを押して別シーンへ移動する方法
・シーン遷移でよくあるエラーと対処法
・ステージ管理やセーブ機能と組み合わせる考え方


Unityでシーンを切り替える基本の流れ

1. シーンを複数作成しよう

  • 例:TitleSceneMainScene など
  • メニューから File > New Scene で作成
  • 作成後は Assets/Scenes フォルダに保存

2. シーンを Build Settings に追加

Build Settingsにシーンを追加していない場合、SceneManager.LoadScene() を書いていてもシーン切り替えが正しく動かないことがあります。

ボタンでシーンを切り替える前に、移動先のシーンがBuild Settingsに登録されているか必ず確認しておきましょう。

  • File > Build Settings を開く
  • 作成したシーンを 「Add Open Scenes」 ボタンで登録

ボタンを押してシーンを切り替える方法

ボタンを押してシーンを切り替える場合は、ButtonのOnClick()にシーン切り替え用のメソッドを登録します。

今回の例では、LoadMainScene() をボタンに登録することで、クリック時に MainScene へ画面切り替えを行います。

タイトル画面の「スタート」ボタンや、ステージ選択画面の各ステージボタンでも同じ考え方で実装できます。

1. スクリプトを作成(例:SceneChanger.cs)

using UnityEngine;
using UnityEngine.SceneManagement;

public class SceneChanger : MonoBehaviour
{
    public void LoadMainScene()
    {
        SceneManager.LoadScene("MainScene");
    }
}

2. ボタンにスクリプトをアタッチ

  • Canvas > Button を作成
  • OnClick() イベントに SceneChanger > LoadMainScene() を指定

シーン切り替えができないときの確認ポイント

シーン切り替えができない場合は、まず以下を確認しましょう。

・シーン名にスペルミスがないか
・移動先のシーンをBuild Settingsに追加しているか
・using UnityEngine.SceneManagement; を書いているか
・ButtonのOnClick()に正しいメソッドを登録しているか

特に初心者の場合、Build Settingsへの追加忘れでシーン遷移が動かないケースが多いです。

  • シーン名のスペルミス → SceneManager.LoadScene("MainScene")"MainScene" は正確に
  • シーンをBuild Settingsに追加し忘れ → 表示されない・エラーになる

シーン切り替えをステージ管理やセーブ機能と組み合わせる使い方

ステージ選択画面から各ステージへ移動する処理は、ステージ管理の仕組みと組み合わせると理解しやすくなります。

例えば、ステージ1、ステージ2、ステージ3のように複数のステージを用意している場合、ステージ選択ボタンを押したタイミングで対応するシーンへ切り替えることで、ステージ制ゲームの基本的な流れを作れます。

ステージ選択画面やステージ解放の作り方は、以下の記事で解説しています。

関連記事:
Unityでステージ選択画面を作る方法

セーブ機能と組み合わせる場合

シーンを切り替えたあともクリア状況やステージ解放状況を残したい場合は、PlayerPrefsを使ったセーブ機能もあわせて確認しておくと便利です。

PlayerPrefsでステージ解放状況やクリア状況を保存しておけば、ゲームを再起動しても進行状況を維持できます。

PlayerPrefsを使った簡単なセーブ機能の作り方は、以下の記事で解説しています。

関連記事:
Unityでセーブ機能を作る方法

Unityの学習環境を整えたい場合

Unityの基本操作や学習環境を整えたい方は、Unity Learnを日本語で使う方法もあわせて確認してみてください。

関連記事:
Unity Learnを日本語で使う方法

Unityの教科書 Unity 6完全対応版見てわかる Unity 6 超入門

✍️ まとめ

今回は、Unityでシーン遷移を実装する方法について解説しました。

シーン遷移は、タイトル画面、ステージ選択画面、ゲーム画面、リザルト画面などを切り替えるために必要な基本機能です。

Unityでは、SceneManager.LoadScene() を使うことで、指定したシーンへ移動できます。

シーン遷移を使うときは、シーンを作成するだけでなく、Build Settingsに追加しておくことも忘れないようにしましょう。

また、ステージ管理やセーブ機能と組み合わせることで、ステージ選択画面から各ステージへ移動したり、保存した進行状況に応じて画面を切り替えたりできるようになります。

まずはボタンを押して別シーンへ移動する小さな処理から試して、少しずつゲーム全体の流れを作っていきましょう。

コメント

タイトルとURLをコピーしました