此页面介绍如何创建、加载和保存场景场景包含游戏环境和菜单。可以将每个唯一的场景文件视为一个独特的关卡。在每个场景中,您可以放置环境、障碍物和装饰物,本质上是分段设计和构建您的游戏。 更多信息
请参阅 术语表。
有几种方法可以创建新场景
Assets
文件夹内容的窗口(项目选项卡) 更多信息Unity 从场景模板创建每个新场景。有关创建和管理场景模板的信息,请参阅场景模板。
使用“新建场景”对话框从项目中的特定场景模板创建新场景。您还可以使用“新建场景”对话框查找和管理场景模板。有关详细信息,请参阅“新建场景”对话框。
默认情况下,当您从菜单(文件 > 新建场景)创建新场景或使用快捷方式(Ctrl/Cmd + n)时,将打开“新建场景”对话框。
创建新场景
注意 |
---|
附加加载意味着 Unity 将加载场景以及您已打开的任何其他场景。有关更多信息,请参阅多场景编辑。 |
如果模板没有任何可克隆依赖项,Unity 会将新场景加载到内存中,但不会保存它。
如果模板具有可克隆依赖项,Unity 会提示您选择项目中的位置进行保存。保存场景时,Unity 会在同一位置创建与新场景名称相同的文件夹。然后,它将可克隆的依赖项克隆到新文件夹中,并更新新场景以使用克隆的资源,而不是模板场景使用的原始资源。
使用菜单(资源 > 创建 > 场景)创建新场景,而无需打开“新建场景”对话框。
当您从菜单创建新场景时,Unity 会自动复制项目的“基本”模板,并将新场景添加到项目窗口中当前打开的任何文件夹中。
使用项目窗口中的上下文菜单创建新场景,而无需打开“新建场景”对话框。
当您从菜单创建新场景时,Unity 会自动复制项目的“基本”模板,并将新场景添加到选定的文件夹中。
要使用特定场景模板从 C# 脚本创建新场景,请使用Instantiate 方法。
Tuple<Scene, SceneAsset> SceneTemplate.Instantiate(SceneTemplateAsset sceneTemplate, bool loadAdditively, string newSceneOutputPath = null);
Instantiate
方法会从场景模板实例化一个新场景。它返回新创建的 Scene
句柄及其匹配的 SceneAsset
。您可以以附加方式创建此场景。如果场景包含需要克隆的资源,则必须提供一个路径供 Unity 保存到磁盘。
当您从模板创建新场景时(无论是从脚本还是使用“新建场景”对话框),Unity 都会触发一个事件。Unity 在模板实例化后以及触发EditorSceneManager.newSceneCreated
或EditorSceneManager.sceneOpened
事件后触发此事件。
public class SceneTemplate
{
public delegate void NewTemplateInstantiated(SceneTemplateAsset sceneTemplateAsset, Scene scene, SceneAsset sceneAsset, bool additiveLoad);
public static event NewTemplateInstantiated newSceneTemplateInstantiated;
}
要打开场景,请执行以下操作之一
如果当前场景包含未保存的更改,Unity 会提示您保存场景或放弃更改。
您可以同时打开多个场景进行编辑。有关详细信息,请参阅多场景编辑。
要保存您当前正在处理的场景,请从菜单中选择文件 > 保存场景,或按 Ctrl + S(Windows)或 Cmd + S(macOS)。