unity场景切换
注:切换场景需要在文件-生成设置中添加所要切换的场景,并在代码添加命名空间:
using UnityEngine.SceneManagement;
一、场景类
1.同步加载
void Start()
{
//同步切换导入场景(也可通过索引切换)
//SceneManager.LoadScene(1);//通过索引切换。
SceneManager.LoadScene("MyScene");//通过名称切换。
}
2.异步加载(协程)
AsyncOperation operation;//声明返回值
void Start()
{
StartCoroutine(loadScene());//调用异步加载方法
}
//创建异步加载方法(协程方法)
IEnumerator loadScene()
{
operation = SceneManager.LoadSceneAsync("MyScene"); //异步加载场景
operation.allowSceneActivation = true;//是否自动加载
yield return operation;
}
// Update is called once per frame
void Update()
{
Debug.Log(operation.progress);//加载进度
}
3.获取当前场景
void Start()
{
//获取当前场景
Scene scene = SceneManager.GetActiveScene();
//获取场景名称
Debug.Log(scene.name);
}
二、场景管理类
1.动态新建卸载场景
void Start()
{
Scene newscene = SceneManager.CreateScene("newScene");//新建场景
Debug.Log(SceneManager.sceneCount);//获取当前活动场景数量
SceneManager.UnloadSceneAsync(newscene);//卸载场景
}
2.替换合并场景
void Start()
{
//同步场景加载
SceneManager.LoadScene("MyScene",LoadSceneMode.Single);//替换场景
SceneManager.LoadScene("MyScene", LoadSceneMode.Additive);//合并场景
}