在U3D开发过程中经常使用到多场景的切换,有同步SceneManager.LoadScene()和异步SceneManager.LoadSceneAsync()两种方法,同步的话一般就会卡住界面直到加载完成,使用异步的话一般都做一个加载的进度条,每次切换的时候都需要一个加载动画,所以需要建一个专门的过渡加载场景来进行统一加载,也可以避免场景直接切换出现的黑屏。
一、建立一个单例进行切换,在项目代码的任何位置都可以调用
public class LoadSceneManager
{
private static LoadSceneManager instance;
public static LoadSceneManager Instance
{
get {
if (instance == null)
{
instance = new LoadSceneManager();
}
return instance;
}
}
public string nextSceneName;
//异步加载
public void LoadSceneAsync(string sceneName)
{
Debug.Log("LoadSceneAsync:" + sceneName);
nextSceneName = sceneName;
SceneManager.LoadScene("LoadingScene");
}
public void LoadScene(string sceneName)
{
Debug.Log("LoadScene:" + sceneName);