Skip to content

场景资产定义

场景(Scene) 资产用于保存场景在单独的资产文件中。您可以对场景资产执行创建、保存、打开、删除等常见操作。该资产样式如图:

【Scene_Asset001.png】

项目文件夹中的场景资产

创建场景 资产

您可以从 菜单栏(Menu Bar)或 项目窗口(Project) 创建菜单或从 项目窗口(Project) 中创建场景资产。

方法一:

在 菜单栏(Menu Bar)中,依次点击 文件(File)> 新建场景(New Scene)

【Scene_Asset002.png】

此方法创建场景后,需要结合 [保存场景资产](# 保存场景资产) 小节的内容将场景保存为场景资产,否则此方法不能直接生成场景资产。

方法二:

在 项目窗口(Project) 中,点击 添加(+) 按钮,然后选择 场景(Scene)

【Scene_Asset003.png】

方法三:

在 项目窗口(Project)中右键点击空白处,然后选择 创建(Create) > 场景(Scene) ,这样也可以创建场景资产。

【Scene_Asset004.png】

保存场景资产

在关闭编辑器或切换到其他场景前,您需要保存当前场景才能保留您在 SandMod 编辑器对场景所做的更改。

保存场景为场景资产有以下两种方式:

保存

在 菜单栏(Menu Bar)中,依次点击 文件(File)> 保存(Save)

【Scene_Asset005.png】

首次保存场景为场景资产时的界面会略有不同。您需要在资源管理器中指定场景的保存地址以及名称,点击 保存(Save) 按钮保存并创建场景资产。

另存为

在 菜单栏(Menu Bar)中,依次点击 文件(File)> 另存为(Save As) ,在资源管理器中指定场景的保存地址以及名称,点击 保存(Save) 按钮另存场景资产。

【Scene_Asset006.png】

打开场景资产

可以用以下方法打开场景资产:

方法一:

在 项目窗口(Project)中双击需要打开的场景资产。

【Scene_Asset007.png】

方法二:

您也可以在 项目窗口(Project)中选中场景资产,然后在 检视窗口(Inspector)中点击 打开(Open) 按钮。

【Scene_Asset008.png】

方法三:

在 主菜单 中点击 文件(File),然后选择 打开场景(Open Scene) 选项,可在资源管理器中选择要打开的场景资产。

【Scene_Asset009.png】

方法四:

在 主菜单 中点击 文件(File),然后选择 最近打开场景(Open Recent Scene) 选项,在打开的列表中选取需要打开的场景资产。该列表中按照场景资产创建的时间顺序,从下往上排列(即列表中第一个场景资产选项为最新创建的场景资产)。

【Scene_Asset010.png】

上述任一方法打开场景资产后,场景编辑器(Scene Editor)将会显示该场景的相关信息,可对该场景资产进行编辑。要了解该编辑器的界面、工具栏以及分区,请参阅 场景编辑器窗口 章节。

动态实例化场景资产

在脚本中,通过 Resources.Load(Type,ID) 代码可以根据场景资产的 ID 动态获取 ScenePrefab 类型的场景资产。详情请参阅 API 文档 Resources.Load 的相关内容。随后通过 ScenePreafab.Instance() 的方式,即可将场景资产在脚本中动态实例化。

若需要获取场景资产的 ID,可以在 项目窗口(Project)中用鼠标指向对应的场景资产,点击鼠标右键打开该场景资产的上下文菜单,点击 复制资源 ID(Copy Asset ID) ,即可复制选中的场景资产的 ID 至剪贴板中。

【Scene_Asset011.png】

假设需要实例化的场景资产 ID 为 "Scene001UUID" 。 将此场景资产动态实例化的代码示例如下:

typescript
class SceneInstantiation extends Component {
    //场景资产的上下文菜单 复制资源 ID(Copy Asset ID)后得到场景 ID 为:Scene001UUID

    //定义私有变量保存场景资产;
    private _newScenePrefab:ScenePrefab;

    OnStart(): void {
        //根据场景资产的 ID 获取场景资产并将其保存为 _newScenePrefab 私有变量;
        this._newScenePrefab = Resources.Load(ScenePrefab,"Scene001UUID");

        //将场景资产实例化
        this._newScenePrefab.Instance();
    }

    OnUpdate(): void {
    }

}

删除场景资产

在 项目窗口(Project)中用鼠标指向需要删除的场景资产,点击鼠标右键打开该场景资产的上下文菜单,点击 删除(Delete) 按钮,即可删除该场景资产。

【Scene_Asset012.png】