はじめに
ゲーム起動時やシーンを切り替える時など、読み込みに時間がかかるときはロード画面を表示するのが一般的です。
本記事では、ロード画面の作成から実装方法まで解説します。
ロード画面の実装方法
ロード画面の作成
ロード画面を作ります。自由に作ってもらって構いませんが、今回はわかりやすく以下のようにしました。
パネルにテキストを配置したものになります。
ロードするときに表示したいから、ロード画面はあらかじめ非表示にしておこう!
スクリプトの作成
ロードするシーンを読み込むためのスクリプトを作成します。このスクリプトには、ロードするシーンの名前やパス、読み込みの進捗状況を管理するための変数を定義します。
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;
public class LoadScene : MonoBehaviour {
// ロードするシーンの名前
public string sceneName;
// ロードの進捗状況を表示するUIなど
public GameObject loadingUI;
// ロードの進捗状況を管理するための変数
private AsyncOperation async;
// ロードを開始するメソッド
public void StartLoad() {
StartCoroutine(Load());
}
// コルーチンを使用してロードを実行するメソッド
private IEnumerator Load() {
// ロード画面を表示する
loadingUI.SetActive(true);
// シーンを非同期でロードする
async = SceneManager.LoadSceneAsync(sceneName);
// ロードが完了するまで待機する
while (!async.isDone) {
yield return null;
}
// ロード画面を非表示にする
loadingUI.SetActive(false);
}
}
作成したスクリプトを、ボタンにアタッチします。
ボタンコンポーネントには、スクリプトのStartLoad関数を設定します。
Scene Nameには、切り替え先のシーン名を入力し、Loading UIには、最初に作成したロード画面のオブジェクトを設定します。
実行
ロード時間が短いので一瞬ですが、ロード画面が表示されました!
おわりに
ロード画面の作り方の解説でした。今回紹介した方法で簡単に実装ができるので、ぜひ試してみましょう。データが増えてくると読み込み時間がかかるようになるため、ロード画面は必須となります。
ロード画面のアニメーションにおすすめなアセットはこちらです!