目录
创建场景
在项目窗口的Scenes目录下,右键选择创建->场景
打开场景
在项目窗口中双击对应场景,即可打开该场景
场景切换
在SampleScene场景下,通过代码,加载切换到MyScene场景
点击文件->生成设置
Bulid中的场景指的是,这里面的场景需要在程序中使用,所以我们需要将创建的场景拖入进去
拖入后在最右边会出现每个场景对应的索引
然后点击X号关掉即可,它会保存。
编写代码
在SampleScene场景中,创建一个对象
在项目窗口在创建一个脚本
将脚本挂载到对象上
打开脚本,准备编写代码
场景类和场景管理类
在Unity中,Scene
类是用来表示和操作场景的一个类。场景是Unity项目的基本构建块,每个场景都包含一组游戏对象、光源、相机和其他内容。通过Scene
类和相关的SceneManager
类,你可以加载、卸载和管理场景。
场景类
Scene
类本身提供了一些关于场景的信息,但许多操作是通过SceneManager
类来完成的。以下是一些与Scene
类相关的属性和方法:
属性
Scene.name
: 场景的名称。Scene.path
: 场景的路径。Scene.isLoaded
: 场景是否已加载。Scene.buildIndex
: 场景的构建索引。Scene.rootCount
: 场景中根游戏对象的数量。Scene.isDirty
: 场景是否被修改但未保存。Scene.isSubScene
: 场景是否为子场景。
方法
Scene.GetRootGameObjects()
: 返回场景中所有根游戏对象的数组。Scene.IsValid()
: 检查场景是否有效。
场景管理类
SceneManager
类提供了一些用于加载、卸载和管理场景的方法。以下是一些常用的方法:
卸载场景
获取和设置场景
-
加载场景
SceneManager.LoadScene(string sceneName)
: 同步加载指定名称的场景。SceneManager.LoadScene(int sceneBuildIndex)
: 同步加载指定构建索引的场景。SceneManager.LoadScene(string sceneName, LoadSceneMode mode)
: 使用指定的加载模式加载场景(LoadSceneMode.Single
或LoadSceneMode.Additive
)。SceneManager.LoadSceneAsync(string sceneName)
: 异步加载指定名称的场景。SceneManager.LoadSceneAsync(int sceneBuildIndex)
: 异步加载指定构建索引的场景。SceneManager.LoadSceneAsync(string sceneName, LoadSceneMode mode)
: 使用指定的加载模式异步加载场景。SceneManager.UnloadSceneAsync(string sceneName)
: 异步卸载指定名称的场景。SceneManager.UnloadSceneAsync(int sceneBuildIndex)
: 异步卸载指定构建索引的场景。SceneManager.UnloadSceneAsync(Scene scene)
: 异步卸载指定的场景对象。SceneManager.GetActiveScene()
: 获取当前激活的场景。SceneManager.SetActiveScene(Scene scene)
: 设置指定场景为激活场景。SceneManager.GetSceneByName(string name)
: 根据名称获取场景。SceneManager.GetSceneByBuildIndex(int buildIndex)
: 根据构建索引获取场景。SceneManager.GetSceneAt(int index)
: 获取场景列表中指定索引处的场景。