SceneManager
运行时的场景管理。
public static Scene CreateScene(string sceneName);
摘要:在运行时用给定的名称创建一个空的新场景。
参数:
- sceneName:新场景的名称。它不能为空或null,也不能与现有场景的名称相同。
SceneManager.CreateScene("Game");
public static bool SetActiveScene(Scene scene);
摘要:设置场景为活动。
参数:
- scene:被设置为活动的场景。
Scene scene = SceneManager.CreateScene("Game");
SceneManager.SetActiveScene(scene);
public static void LoadScene(string sceneName);
public static void LoadScene(string sceneName, [DefaultValue("LoadSceneMode.Single")] LoadSceneMode mode);
public static void LoadScene(int sceneBuildIndex);
public static void LoadScene(int sceneBuildIndex, [DefaultValue("LoadSceneMode.Single")] LoadSceneMode mode);
摘要:根据场景的名称或索引加载场景。
参数:
- sceneName:要加载的场景的名称或路径。
- sceneBuildIndex:要加载的场景的索引。
- mode:加载场景模式。
加载前准备:File ---> Build Settings… ---> 将场景添加/拖拽到列表:
后面数字即为场景索引,可以拖动调整顺序。
LoadSceneMode | 加载场景模式(枚举) |
Single | 关闭所有当前加载的场景并加载一个场景。 |
Additive | 将场景添加到当前加载的场景。场景叠加。 |
public static AsyncOperation LoadSceneAsync(int sceneBuildIndex);
public static AsyncOperation LoadSceneAsync(string sceneName, [DefaultValue("LoadSceneMode.Single")] LoadSceneMode mode);
public static AsyncOperation LoadSceneAsync(string sceneName);
public static AsyncOperation LoadSceneAsync(int sceneBuildIndex, [DefaultValue("LoadSceneMode.Single")] LoadSceneMode mode);
摘要:在后台异步加载场景。
参数:
- sceneName:场景名字。
- sceneBuildIndex:场景索引。
- mode:加载场景模式。
public static AsyncOperation UnloadSceneAsync(int sceneBuildIndex);
public static AsyncOperation UnloadSceneAsync(string sceneName);
public static AsyncOperation UnloadSceneAsync(Scene scene);
摘要:异步销毁与给定场景关联的所有游戏对象,并将场景从SceneManager中移除。
参数:
- sceneBuildIndex:场景的索引。
- sceneName:场景的名字。
- scene:场景实例。
public static Scene GetSceneByName(string name);
摘要:在加载的场景中搜索具有给定名称的场景。
public static Scene GetSceneByBuildIndex(int buildIndex);
摘要:通过索引获取场景。
public static Scene GetActiveScene();
摘要:获取当前激活场景。
Scene
场景结构体
public string path { get; }
摘要:场景的相对路径。
public string name { get; }
摘要:场景的名字。
public bool isLoaded { get; }
摘要:场景是否被加载。
public int buildIndex { get; }
摘要:场景的序号。
public bool isDirty { get; }
摘要:如果场景被修改,返回true。
public int rootCount { get; }
摘要:场景中根节点的个数。
public GameObject[] GetRootGameObjects();
public void GetRootGameObjects(List<GameObject> rootGameObjects);
摘要:返回场景中的所有根物体。
public bool IsValid();
摘要:这是否是一个有效的场景。例如,如果试图打开一个不存在的场景,则该场景可能无效。