Version: 2023.2
场景
Work with multiple scenes in Unity

创建、加载和保存场景

本页说明如何创建加载保存场景。

创建新场景

可通过多种方法来创建新场景:

Unity 从场景模板创建每个新场景。有关创建和管理场景模板的信息,请参阅场景模板

从 New Scene 对话框创建新场景

使用 New Scene 对话框在项目中从特定场景模板创建新场景。您还可以使用 New Scene 对话框来查找和管理场景模板。有关详细信息,请参阅 New Scene 对话框

默认情况下,从菜单 (File > New Scene) 或使用快捷方式 (Ctrl/Cmd + n) 创建新场景时,将打开 New Scene 对话。

要创建新场景:

  1. 从列表中选择一个模板。
  2. 如果您希望 Unity 以附加方式加载新场景(请参阅下面的注释),请启用 Load Additively
  3. 单击 Create 从模板创建新场景。
注意:
附加方式加载意味着 Unity 会在已打开的任何其他场景之外加载场景。有关更多信息,请参阅多场景编辑

如果模板没有任何可克隆的依赖项,Unity 会在内存中加载新场景,但不保存。

如果模板有可克隆的依赖项,Unity 会提示您在项目中选择一个位置保存场景。当您保存场景时,Unity 会在相同位置创建一个与新场景同名的文件夹。然后将可克隆的依赖项克隆到新文件夹中,并更新新场景以使用克隆的资源而不是模板场景使用的原始资源。

从菜单创建一个新场景:

使用菜单 (Assets > Create > Scene) 创建新场景,无需打开 New Scene 对话框。

当您从菜单创建新场景时,Unity 会自动复制项目的 Basic 模板,并将新场景添加到 Project 窗口中当前打开的文件夹中。

从 Project 窗口创建一个新场景

使用 Project 窗口中的上下文菜单创建新场景,无需打开 New Scene 对话框。

  1. 导航到要创建新场景的文件夹。
  2. 右键单击左侧窗格中的文件夹,或右键单击右侧窗格中的空白区域,然后从上下文菜单选择 Create > Scene

当您从菜单创建新场景时,Unity 会自动复制项目的 Basic 模板,并将新场景添加到选定的文件夹中。

从 C# 脚本创建一个新场景

要从 C# 脚本使用特定场景模板创建新场景,请使用 Instantiate 方法

Tuple<Scene, SceneAsset> SceneTemplate.Instantiate(SceneTemplateAsset sceneTemplate, bool loadAdditively, string newSceneOutputPath = null);

Instantiate 方法从场景模板中实例化一个新场景。它返回新创建的 Scene 句柄,及其匹配的 SceneAsset。您可以以附加方式创建此场景。如果场景包含需要克隆的资源,您必须为 Unity 提供将场景保存到磁盘的路径。

新场景的事件

当您从模板创建新场景时,无论是从脚本还是使用 New Scene 对话框,Unity 都会触发一个事件。Unity 在模板实例化之后触发这个事件,然后还会触发 EditorSceneManager.newSceneCreatedEditorSceneManager.sceneOpened 事件。


public class SceneTemplate
{
    public delegate void NewTemplateInstantiated(SceneTemplateAsset sceneTemplateAsset, Scene scene, SceneAsset sceneAsset, bool additiveLoad);

    public static event NewTemplateInstantiated newSceneTemplateInstantiated;
}

加载场景

要打开场景,请执行以下操作之一:

  • 在 Project 窗口中,双击该场景资源。
  • 从菜单中选择 File > New Scene
  • 从菜单中选择 File > Recent Scenes > [场景名称]

如果当前场景包含未保存的更改,Unity 会询问是要保存该场景还是丢弃更改。

一次打开多个场景

您可以同时打开多个场景进行编辑。有关详细信息,请参阅多场景编辑

保存场景

要保存当前正在处理的场景,请从菜单中选择 File > Save Scene,或按 Ctrl + S (Windows) 或 Cmd + S (macOS)。

已保存的场景资源在 Project 窗口中可见
已保存的场景资源在 Project 窗口中可见
场景
Work with multiple scenes in Unity