【Unity】ボタンを押したら任意のシーン(scene)を読み込みようにする方法

  • ボタンを押したらシーンを読み込むようにしたい

というなやみを解決します。

スクリプトだけ知りたい人はこちらをどうぞ。

SceneManager.LoadScene("A"); 「A」Sceneを読み込む
SceneManager.LoadScene(
SceneManager.GetActiveScene().name);
現在のSceneを読み込む

では詳しく説明していきます。

目次

ボタンを押したらシーンを読み込む方法

  1. 【Scene In Build】に作ったSceneを入れる
  2. Buttonを作成
  3. Canvasにスクリプトを追加、アタッチ
  4. 作ったスクリプトを開く
  5. スクリプトを書く
  6. ボタンを押したときのイベントを設定する

もうC#のファイルを作成している方は、⑤からご覧ください。

【Scene In Build】に作ったSceneを入れる

ビルド設定

●【Scene In Build】に作ったシーンを入れる流れ

【File】→【Build Setting】→【Sceneをドラッグ&ドロップする】

ここで現在のsceneや読み込みたいSceneをすべていれてください。

Button作成

Button作成方法

【Hierarchy】→【Create】→【UI】→【Button】

【Canvas】と【Button】が作成できていることを確認してください。

Canvasにスクリプトを追加、アタッチ

Canvasにスクリプトをアタッチ

【Canvasを選択】→【Inspector】→【Add Component】→【New script】→【名前は最初を大文字にして、なんでもどうぞ】

これでスクリプトの追加、アタッチが完了です。

作ったスクリプトを開く

スクリプトを開く

さきほど作ったスクリプトをタブルクリックして、開いてください。自分は「GameFinish」という名前にしたので、それをダブルクリックします。

ダブルクリック後は「Visual Studio」か「MonoDevelop」が開きます。どちらでも構ません。

スクリプトを書く

以下のスクリプトが必要になります。書き終わったら、保存しておいてください。

コード

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 1.UIシステムを使うときに必要なライブラリ
using UnityEngine.UI;
// 2.Scene関係の処理を行うときに必要なライブラリ
using UnityEngine.SceneManagement;

public class GameFinish : MonoBehaviour
{

    // Use this for initialization
    void Start()
    {

    }

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

    }

    // 3.OnRetry関数が実行されたら、sceneを読み込む
    public void OnRetry()
    {
        // 「ButtonScene」を自分の読み込みたいscene名に変える
        SceneManager.LoadScene("ButtonScene");
    }
}

1.UIシステムを利用するときに必要なライブラリ

コード

// 1.UIシステムを使うときに必要なライブラリ
using UnityEngine.UI;

ボタンはUIになります。そのため、このライブラリを読み込んでください。

2.Scene関係を操作するときに必要なライブラリ

コード

// 2.Scene関係の処理を行うときに必要なライブラリ
using UnityEngine.SceneManagement;

今回はSceneを読み込むので、このライブラリを使います。

3.関数が実行されたら、Sceneを読み込む

コード

// 3.OnRetry関数が実行されたら、sceneを読み込む
public void OnRetry()
{
//「ButtonScene」を自分の読み込みたscene名に変える
SceneManager.LoadScene("ButtonScene");
}

SceneManager.LoadScene("A"); 「A」Sceneを読み込む
SceneManager.LoadScene(
SceneManager.GetActiveScene().name);
現在のSceneを読み込む

「OnRetry」関数が実行されたら、Sceneを読み込むようにしています。

ボタンを押したときのイベントを設定する

Buttonが押されたときイベントを設定

【Button選択】→【Inspector】→【On Click】→【+をクリック】→【Canvasをドラッグ&ドロップ】→【GameFinish(先ほど自分で作成したスクリプトの名前)】→【OnRetry()をクリック】

クリックしたときOnRetry()が実行されるように設定しています。

ゲームを実行して、ボタンを押して見る

ボタンをクリックしてSceneを読み込む

カメラを動かして、ボタンがGameビューで見れる位置にもっていって、ボタンをおしてみましょう。

自分は読みこんだSceneになにも設置していないので、なにも表示されなくなります。

どうでしょうか。自分の読み込みたいsceneを読み込めるようになりましたか。

まとめ

SceneManager.LoadScene("A"); 「A」Sceneを読み込む
SceneManager.LoadScene(
SceneManager.GetActiveScene().name);
現在のSceneを読み込む

重要なとこはこのスクリプトですね。よく使います。

 

 

こんな感じでツイートもしてまうす。

Unityでゲームを作りたいのなら、【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろうでゲームを作ってみるのはどうでしょうか

あわせて読みたい
【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろう【チュートリアル】 ▼この記事を先に見ておきましょう▼ https://miyagame.net/basis-cs/ 当サイトではUnityでのサンプルゲームを作成することができます。Unityでゲームを作っていきましょ...

以上さぎのみや(@saginomiya8)でした。

Unityでボタンを押したら次シーンに行く

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次