此方法在当前游戏制作中比较常用
一、创建加载场景管理类
1
using System.Collections;
2
using mokak;
3
public class LoadingOtherSceneManger :Singleton<LoadingOtherSceneManger>
4
{
5
public string sceneName = "";
6
}
二、创建切换场景脚本,并且创建一个空场景负责显示加载界面,在空场景中创建空游戏组件,添加切换场景脚本
1
using UnityEngine;
2
using System.Collections;
3
using UnityEngine.SceneManagement;
4
public class loadingChange : MonoBehaviour {
5
private AsyncOperation mAsyncOperation;
6
void Start()
7
{
8
if (LoadingOtherSceneManger.Instance.sceneName!="")
9
{
10
StartCoroutine(LoadOtherScene(LoadingOtherSceneManger.Instance.sceneName));
11
}
12
}
13
14
IEnumerator LoadOtherScene(string sceneName)
15
{
16
17
mAsyncOperation = SceneManager.LoadSceneAsync(sceneName);
18
mAsyncOperation.allowSceneActivation = false;
19
yield return new WaitForSeconds(1f);
20
mAsyncOperation.allowSceneActivation = true;
21
}
22
}
当需要切换场景时,首先同步加载到负责显示加载页面的场景中,然后给上述脚本中的变量赋值
实际运用
1
void BackScene(GameObject go)
2
{
3
SoundManager.Instance.PlaySFX(SOUND_DEFINE.BUTTON_CLICK);
4
LoadingOtherSceneManger.Instance.sceneName = "main_scene";
5
SceneManager.LoadScene("loading");
6
}