Skip to main content

场景流送

概述

场景流送(Scene Streaming),又称场景对象流送(Scene Object Streaming),是指将单个游戏对象(Game Object)作为一个对象,按照一定的规则进行加载和卸载。场景对象流送可以降低多人开发相同场景时的冲突概率,提升场景开发效率。

旧版场景格式会保存所有场景对象,一旦一个场景对象有所修改,将会影响整个场景文件,其冲突粒度是整个场景中的所有对象。而流送场景的场景文件不保存场景对象,通过可扩展的流送规则决定场景对象的加载。每个流送对象对应一个文件,将冲突粒度减小到单个场景对象级别。项目可以继承场景流送基类定制化场景流送规则。

启用场景流送

依次点击菜单栏配置(Config)-> 项目设置(Project Settings),弹出项目设置面板,选择通用项目设置(General Project Settings)页签,显示右侧面板。在场景流送配置(Scene Streaming Config)属性下勾选启用场景流送(Enable Scene Streaming)

2023-02-10_100620

创建空关卡

创建支持场景流送的空关卡。依次点击菜单栏文件(File)-> 从模板中新建关卡(New Level From Template),弹出打开关卡(Open Level)窗口,选择一个模板关卡,双击创建新的关卡。

2023-02-10_110043

2023-02-10_110717

场景流送配置

大纲(Hierarchy)面板中选择LSceneSettings-1,在观察器(Inspector)面板中选择LSceneSettings-1(Instance),然后在场景流送配置(Scene Streaming Config)下设置相关属性参数。

2023-02-13_102925

点击可编辑分组(Editable Groups)右侧的 2023-02-13_135729 按钮,即可在所有现有分组最后添加一个新的分组;点击分组序号右侧的 2023-02-13_135729 按钮,则会在该组下方插入一个新的分组。

2023-02-13_135409

属性描述
启用调试绘制(Enable Debug Draw)是否绘制调试用辅助线。
聚焦起始(Focus Start)聚焦的流送源起始索引。
绘制左侧(Draw Left)辅助线屏幕空间左侧偏移。
绘制顶部(Draw Top)辅助线屏幕空间顶部偏移。
绘制分组宽度(Draw Group Width)辅助线分组宽度。
绘制每行分组数(Draw Group Num Per Row)每行分组数量。
组名(Group Name)分组名称。
每个维度节点数(Node Num Per Dim)每个维度的节点数量。
加载范围(Load Extent)加载范围(LoadNum=2*LoadExtent+1)。
可视范围(Visible Extent)可视范围(VisibleNum=2*VisibleExtent+1)。
节点大小(Node Size)节点大小。
绘制(Draw)分组是否需要绘制(用于调试)。
绘制节点数(Draw Node Num)绘制节点数量(用于调试)。
启用场景流送(Enable Scene Streaming)是否启用场景流送。

场景对象场景流送配置

依次点击创建游戏对象(Create Game Object)-> 角色(Character),创建场景对象。

2023-02-13_110703

大纲(Hierarchy)面板中选择场景对象LCharacter,在观察器(Inspector)面板中选择LCharacter(Instance),然后在场景流送(Scene Streaming)下设置相关属性。

2023-02-13_110959

属性描述
组名(Group Name)分组名称,如有匹配的组名,则按照分组策略加载。
是否启用流束(Has Streaming Bundle)是否启用流束。
加载模式(Load Mode)包括位置(Position)模式和总是加载(Always Load)模式,前者受指定分组名称策略影响,后者不受流送分组策略影响。