使用前需先引入: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. 事件
变量 | 描述 | 参数 |
---|
<Scene, Scene> activeSceneChanged | 活动场景发生变化时 | 被替换的场景、下一个场景 |
<Scene, LoadSceneMode> sceneLoaded | 场景加载时 | 新场景、加载场景的方式 |
<Scene> sceneUnloaded | 场景卸载时 | 卸载场景 |