一、直接切换
老版的(已弃用!):
Application.LoadLevel(int index); // 参数是场景编号
Application.LoadLevel(string name); // 参数是场景名字
新版的:
// 使用SceneManager!
using UnityEngine.SceneManagement; // 必须要引入
public class TestChangeScene : MonoBehaviour {
private string sceneName;
void ChangeScene(){
// 切换场景
SceneManager.LoadScene(1); // 参数是场景编号或场景名字
// 获取当前场景的名字
sceneName = SceneManager.GetActiveScene().name;
}
}
注意点:
- 网上搜的资料大多是老版本的写法,小心被坑!还是看文档最靠谱。
- 需要把加载的场景在File -> Build Setting中添加。
- 切换场景后所有加载物体都将删除,除非使用Object.DontDestroyOnLoad(Object)添加标记,例如人物角色(包括挂载在这些对象身上的脚本)在切换场景后需要保留,就可以用此方法。
二、异步加载场景
http://www.cnblogs.com/guxin/p/unity-use-coroutine-asynchronously-load-scene.html