基本知識

【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」が開きます。どちらでも構ません。

スクリプトを書く

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

 

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を読み込む

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

 

 

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

以上さぎのみや(@gumimomoko)でした。明日からも一生無双でやったりましょうp|  ̄∀ ̄ |q ファイトッ!!

 

ABOUT ME
さぎのみや
unityブロガー。もしわからない、わかりにくいところがあった場合はTwitterやお問い合わせで連絡ください。