#環境
Unity 2019.3.7f1
#はじめに
移動先のシーンが重くて遷移まで間が開いてしまう問題を解決するべく
シーンの事前ロードについて調べました。
#方法
事前ロードし、ボタンを押したらシーン移動するコード
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;//追加
public class SceneTest : MonoBehaviour
{
AsyncOperation a;//AsyncOperation型の変数aを宣言
void Start()
{
//SceneManager.LoadSceneAsync("GameScene")の返り値(型はAsyncOperation)を変数aに代入
a = SceneManager.LoadSceneAsync("GameScene");
//AsyncOperationの中の変数allowSceneActivationをfalseにする
//これがtrueになるとシーン移動する
a.allowSceneActivation = false;
}
//ボタンに割り当て
public void Change_Scene_button()
{
//trueにしてシーン移動
a.allowSceneActivation = true;
}
}
###解説
SceneManager.LoadSceneAsync("シーン名");のみを使ってシーン移動する場合、
下図のことが処理されています。
allowSceneActivationの情報を下図のように一旦falseにしておくことで
シーン読み込み後のシーン移動をストップします。
#おわりに
ちょっとややこしいですが、定型文として覚えておく程度で良いと思います。
動けばOKの精神♪