シーン遷移の基本を学びます.
ここでは,トップ画面>ゲーム画面>エンド画面の3つのシーンを移動しまたトップ画面へ戻ります.
ワークフロー
- シーンを作成
- ボタンを作成
- スクリプトを作成
- ボタンにスクリプトをアサイン
- ビルド設定をする
- 実行する
トップシーンを作成する
- トップ画面用シーンを作成する
- トップ画面用シーンに適宜UI>Textを入れて遷移時にどの画面にいるか分かるようにする
- トップ画面にGameObject>UI>Buttonでボタンを作成する
- 位置調整をする(参考画像)
スクリプト作成
- scnChangeというファイル名でスクリプトを作成する(※ファイル名とclass名は同一にすること)
- 全て以下に入れ替え保存する(※このスクリプトは他でも使い回しできます)
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement;//これを必ず追加しないと使えない public class scnChange : MonoBehaviour { public string scnName;//変数scnNameをInspectorからセットできるようにする public void goScene(){ SceneManager.LoadScene(scnName);//変数scnNameのシーンにシーン遷移する } }
スクリプトをボタンにアサインする
- GameObject>CreateEmpty で空のオブジェクトに上で作成したスクリプトをコンポーネントに追加する
- Scn Nameの欄にジャンプ先のシーン名を入力する(※これがInspectorに表示されるのは10行目の変数宣言をpublicにしているから)
- ボタンを選択し,OnClickの+ボタンでリストを追加する
- 追加したリストに作成した空のオブジェクト(1でスクリプトがついているもの)をアサインする
- NoFunctionのプルダウンからscnChange>goSceneを選択する(13行目のpublic void goScene を実行するという意味,publicがついているとボタンから押せる)
ビルド設定をおこなう
- File>Build Settings…でビルド設定を開き,ドラッグ&ドロップで,ここで作成した最初のシーンと,これまで作成しらゲームのシーンを追加する
- 保存し,トップ画面用シーンを再生し,ボタンを押してシーン遷移するか確認する
- シーン遷移後,ゲーム画面の明るさが少し暗いようでしたら,そのシーンのWindow>Lightingを選び,AutoGenerateのチェックを外し,Generateを一度押しておきます
実習
- エンドシーンを作成する
- ゲームシーンからエンドシーン,エンドシーンからトップシーンへとジャンプさせ3つのシーンを1周できるようにすること