LoginSignup
2
1

More than 3 years have passed since last update.

【Unity】シーンの事前ロード

Last updated at Posted at 2020-04-26

環境

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("シーン名");のみを使ってシーン移動する場合、
下図のことが処理されています。
image.png

 
allowSceneActivationの情報を下図のように一旦falseにしておくことで
シーン読み込み後のシーン移動をストップします。
image.png

おわりに

ちょっとややこしいですが、定型文として覚えておく程度で良いと思います。
動けばOKの精神♪

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1