基本知識

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

Unityでボタンを押したら次シーンに行く
  • ボタンを押したらシーンを読み込むようにしたい

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

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

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サンプルゲーム】動画よりわかりやすく記事でゲームを作ろうでゲームを作ってみるのはどうでしょうか

Unityサンプルゲーム
【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろう【Unity2D&3Dサンプルゲーム】Unityにおいてのサンプルゲームの作り方が書いてある記事って少ないですよね。そこで当サイトUnishar(ユニシャー)が動画よりわかりやすいサンプルゲームを無料で提供します。...

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

ABOUT ME
さぎのみや
さぎのみや
Unityでのゲーム開発を手助けするメディア「Unishar-ユニシャー」運営者。UnityとBlenderを使っています。好きな人は芯がある人です。シェアしてください(゚∀゚)→Amazonほしいものリスト
Unityでゲーム開発をしたいあなたへ

Unityとは?から基本操作まで学べる

>>ゼロから始めるUnity

プログラミングとは?C#の基本まで学べる

>>ゼロから始めるC#

実際にUnityでゲームを作る

>>サンプルゲーム一覧

ボタンを押すとその記事にいきます。