场景流送
概述
场景流送(Scene Streaming),又称场景对象流送(Scene Object Streaming),是指将单个游戏对象(Game Object)作为一个对象,按照一定的规则进行加载和卸载。场景对象流送可以降低多人开发相同场景时的冲突概率,提升场景开发效率。
旧版场景格式会保存所有场景对象,一旦一个场景对象有所修改,将会影响整个场景文件,其冲突粒度是整个场景中的所有对象。而流送场景的场景文件不保存场景对象,通过可扩展的流送规则决定场景对象的加载。每个流送对象对应一个文件,将冲突粒度减小到单个场景对象级别。项目可以继承场景流送基类定制化场景流送规则。
启用场景流送
依次点击菜单栏配置(Config)-> 项目设置(Project Settings),弹出项目设置面板,选择通用项目设置(General Project Settings)页签,显示右侧面板。在场景流送配置(Scene Streaming Config)属性下勾选启用场景流送(Enable Scene Streaming)。
创建空关卡
创建支持场景流送的空关卡。依次点击菜单栏文件(File)-> 从模板中新建关卡(New Level From Template),弹出打开关卡(Open Level)窗口,选择一个模板关卡,双击创建新的关卡。
场景流送配置
在大纲(Hierarchy)面板中选择LSceneSettings-1,在观察器(Inspector)面板中选择LSceneSettings-1(Instance),然后在场景流送配置(Scene Streaming Config)下设置相关属性参数。
点击可编辑分组(Editable Groups)右侧的 按钮,即可在所有现有分组最后添加一个新的分组;点击分组序号右侧的
按钮,则会在该组下方插入一个新的分组。
属性 | 描述 |
---|---|
启用调试绘制(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),创建场景对象。
在大纲(Hierarchy)面板中选择场景对象LCharacter,在观察器(Inspector)面板中选择LCharacter(Instance),然后在场景流送(Scene Streaming)下设置相关属性。
属性 | 描述 |
---|---|
组名(Group Name) | 分组名称,如有匹配的组名,则按照分组策略加载。 |
是否启用流束(Has Streaming Bundle) | 是否启用流束。 |
加载模式(Load Mode) | 包括位置(Position)模式和总是加载(Always Load)模式,前者受指定分组名称策略影响,后者不受流送分组策略影响。 |