Buttonをクリック(タップ)するとシーンが切り替わるようにする方法まとめ - IG Unityゲーム開発部

Buttonをクリック(タップ)するとシーンが切り替わるようにする方法まとめ

Unityのプロジェクト内のCanvasにボタンを追加して、そのボタンをクリックするとシーンが切り替わるようにする方法をまとめました。

以下の環境で作業しています。

  • Unity 6.1 (6000.1.11.f1)
  • URPでのプロジェクト
  • Windows 11 Pro(CPUはIntel Core i7、GPUはGeForce 4060)

URPでプロジェクトを立ち上げる

まずはUnity Hubを起動してURPでプロジェクトを作成します。

プロジェクト名はButtonTestPJとします。プロジェクト名はなんでもいいです。この記事ではわかりやすくボタンについてテストするプロジェクトとしています。

右側のペインを下にスクロールして「Connect to Unity Cloud」のチェックを外しておきます。

この状態で「Create project」をクリックします。

CanvasとEventSystemをシーン上に作成する

まずはシーン上にCanvasを作成します。Canvasを作成すると自動でEventSystemも作成されます。

Canvas配下にUI(Button)を作成する

Canvasオブジェクトを右クリックして、Canvasの配下にボタンを配置します。

Import TMP Essentialsをクリックします。

この状態で問題ありません。TMP Importerウィンドウは×閉じしましょう。

C#のスクリプトを作成する

ボタンを押したらシーンを変更するためのC#を作成していきます。

今回は「Assets」フォルダ配下の「Scene」フォルダにC#を作ります。まずは一番左のSceneフォルダをダブルクリックします。

ここにC#を作ります。

C#ファイルが作成されました。

作成されたC#ファイルをダブルクリックして中身を確認します。

このままだとボタンにこのC#ファイルをアタッチしてもシーン遷移しないのでプログラムを書いていきます。

まずはシーンが遷移するコードを以下のように書きます。以下のコードをそのまま作成されたC#ファイルにコピーペーストしてしまってください。

using UnityEngine;
using UnityEngine.SceneManagement;

public class NewMonoBehaviourScript : MonoBehaviour
{
    // Start is called once before the first execution of Update after the MonoBehaviour is created
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    
public void change_button()
{
    SceneManager.LoadScene("Scene2");
}

}

追加したコードは以下の2つです。

using UnityEngine.SceneManagement;
public void change_button()
    {
        SceneManager.LoadScene("Scene2");
    }

ボタンを配置したら以下のようなC#を作成してボタンにアタッチします。

ボタンを押したらシーンが切り替わるようにする

シーンをBuild Editorで追加しておく

実際にPlayモードにして動作を確認してみる

実際にビルドして試してみる

ボタンの配置が思った場所にないときに気にしたいこと

シーン切り替え処理の応用

ボタンを押さなくとも、物体に触れたときにシーンを切り替える、人に話しかけてYESボタンを押下したらシーンを切り替えるなど、C#で記載しているスクリプトを工夫するなどして書けば、ボタン押下以外でも応用してシーンを切り替えることができます。

まとめ

ボタンの押下でシーンの切り替えに関する内容をまとめました。シーンの切り替えに関する処理はボタン押下に限らず、ゲームの開始画面や主人公がやられてゲームオーバーになったときなど様々な場面で応用ができる技術です。覚えると大変ですが、定期的に本記事のスクリプトを参考にして活用するなどしていただけると幸いです。