Unity 常用脚本:SceneManager

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();

摘要:这是否是一个有效的场景。例如,如果试图打开一个不存在的场景,则该场景可能无效。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值