前回作成した下記記事のタイトル画面から画面遷移してみます。
Unity 2Dで画面遷移するには?
今回は下記のようにタイトル画面でStartボタンをクリックしたときに、画面遷移する方法を記載します。
Unity 2Dで画面遷移するときは、ボタンを押したなどのタイミングで、スクリプトを実行して画面遷移します。
スクリプトの方でSceneManager
クラスを使用することで、読み込みたい画面を呼び出すことが可能です。
タイトル画面のStartボタンはヒエラルキーメニューから「UI => Button」から配置したボタンです。
こちらの記事にタイトル画面については書いています。
画面遷移するサンプル
下記の手順で画面遷移を実現できます。
2. スクリプトを編集して、画面遷移のコードを書く
3. ボタンをクリックした時に実行するメソッドを選択する
ボタンに対して、スクリプトを作成する
まず、ボタンに対してスクリプトを作成します。
ボタンを選んで、Inspectorから「Add Component」を選択します。
New Scriptを選んで、スクリプトを作成します。
今回はStartController
にしました。スクリプトの追加が終わると下記のようになります。
スクリプトを編集して、画面遷移のコードを書く
作成したスクリプトを編集します。
Assets配下に作成したスクリプトが追加されているので、選択して編集します。
下記のようにコードを変更しました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class StartController : MonoBehaviour
{
public void SwitchScene()
{
SceneManager.LoadScene("JumpTestScene", LoadSceneMode.Single);
}
}
SceneManager
はシーンの管理をしてくれるクラスです。
LoadScene
メソッドを呼ぶことで、シーンの切り替えができます。
渡す引数として、第1引数にシーンの名前を渡します。
今回は一緒に追加しているJumpTestSceneを呼ぶようにしました。
第2引数はシーンを読み込むときのモードです。
シーンのモードにはSingleとAdditiveがあります。
Single
は全てのシーンを閉じて、ロードしてくれます。
Additive
は現在ロードしているシーンにシーンを追加します。
今回はSingle
を使用して、読み込んでみました。
LoadSceneModeについては、公式のこちらに記載がありました。
SceneManagerについての公式ドキュメントはこちらです。
ボタンをクリックした時に実行するメソッドを選択する
コードを書き終えたら、ボタンに対してクリックした時に作成したメソッドを呼ぶようにします。
StartボタンのInspectorを開いて、下記のようにStartボタンオブジェクトをヒエラルキーメニューからドラッグ&ドロップします。
ドロップしたら下記のようになるので、「No Function」の箇所を押して、作成したメソッドを選択します。
下記のように作成したメソッドを選択したら、設定完了です。
今回は作成したStartControllerのSwitchSceneメソッドを選択しました。
画面遷移の動作確認する
画面遷移できるか動作確認します。
ゲームを開始して、スタートボタンを押すと、下記のように遷移できることが確認できました!
ゲーム画面からクリア画面やゲームオーバー画面に遷移する場合も同じようにSceneManager
のLoadScene
メソッドを使うことで遷移することができます。
コメント