Unity 场景切换需要花费太多时间



我创建了一个在场景中带有主菜单的游戏,我有第二个场景,其中包含实际游戏。当用户点击主菜单场景上的播放按钮时,它会加载实际的游戏场景,但问题是它花费了太多时间。我该怎么办?

这是我正在使用的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class MainMenu : MonoBehaviour {
public void PlayGame()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
}
public void QuitGame()
{
Debug.Log("Ho gaya....! Mera Ho gya");
Application.Quit();
}
}

你可以使用LoadSceneAsync提前加载关卡,但不能激活它,加载完成后你会得到一个回调,而不是简单地激活场景,当用户按下按钮应该是即时的

或者,您也可以等到按下所述按钮来调用SceneManager.LoadSceneAsync,但在实际游戏场景加载时显示窗帘(又名加载屏幕(。协程是你的朋友,因为你可以通过从协程IEyield return来等待AsyncOperation完成

var curtain = Instantiate(CurtainPrefab);
DontDestoryOnLoad(curtain);
yield return SceneManager.LoadSceneAsync(gameSceneIndex);
// Don't allow unload to clean up this object or it'll stop the coroutine before destroying the curtain!
DontDestroyOnLoad(gameObject);
yield return SceneManager.UnloadSceneAsync(mainMenuSceneIndex);
Destroy(curtain);
// Do this last or the Coroutine will stop short
Destroy(gameObject);

最新更新