使用前需先引入:using UnityEngine.SceneManagement
1. SceneManager.LoadScene(string, LoadSceneMode)
加载场景,并决定当前场景是否保留
LoadSceneMode是枚举类型
| 类型 | 描述 |
|---|
| Additive | 加载场景保留当前场景 |
| Single | 加载场景清除当前场景 |
2. SceneManager.LoadSceneAsync(string, LoadSceneMode)
协程加载场景
返回:AsyncOperation
| 变量 | 描述 |
|---|
| isDone | 是否加载完成 |
| allowSceneActivation | 允许场景在准备就绪后立即激活 |
| progress | 加载进度(0~1) |
可设置 allowSceneActivation 为 false,在加载完毕后让进度条前进到尽头处,然后才设置为true进入新场景。(ao.progress >= 0.9)
allowSceneActivation 功能也可以有效的让指定代码运行在新场景运行之前,比Awake更优先,因为 allowSceneActivation 为 false 时不会运行新场景的代码
3. SceneManager.GetActiveScene()
获取场景信息
返回:Scene
| 变量 | 描述 |
|---|
| name | 场景名 |
| buildIndex | 构建列表的第几个 |
| isLoaded | 是否加载完成 |
| path | 场景物理地址 |
| rootCount | 根对象数量 |
| 方法 | 描述 |
|---|
| GetRootGameObjects() | 获得根对象数组 |
4. 静态变量
| 变量 | 描述 |
|---|
| sceneCount | 当前场景数量 |
| sceneCountInBuildSettings | 构建设置中有几个场景 |
5. 事件
| 变量 | 描述 | 参数 |
|---|
| activeSceneChanged | 活动场景发生变化时 | 被替换的场景、下一个场景 |
| sceneLoaded | 场景加载时 | 新场景、加载场景的方式 |
| sceneUnloaded | 场景卸载时 | 卸载场景 |