如果您的地形具有多个地块,则始终需要在每次运行 NavData 生成系统时传递所有地块的三角形,以便这些地块可在运行时缝合。但是,如果几何体仅在一个地块中发生更改,您可能不希望为整个世界重建 NavData,而是仅为发生更改的地块以及发生更改的地块与其相邻地块之间的重叠重建 NavData。
同样,在具有协作工作流和资源版本控制的生产环境中,某些与特定地块重叠的 NavData 可能会被锁定。您需要能够重建具有此约束的地块。
Gameware Navigation 数据生成系统完全支持这些情景。如果直接使用 NavData 生成系统的 API,可以轻松配置应重新生成的地块,以及仅为考虑与相邻地块重叠的几何体而应重新加载的地块。在此过程中,Generator 直接从上一个生成运行中创建的 .ClientInput 或通过调用 PdgInputProducer 读取无更改地块的输入数据,以便向该地块提供三角形。
对于列表中 GeneratorInputOutput 保留的每个 GeneratorSector,您可以设置两个标志来控制重建过程:
重建各个地块主要是为了允许关卡设计师在较大地形的定义地块内工作,以便能够始终在他们的控制之下生成这些区域的 NavData,而无需修改任何相邻地块,这样他们的测玩才能始终反映对他们自己的地形所做的最新更改。
但是,在这种情景下,与其他地块重叠的区域不能保证是最新的。由于重叠区域的 NavData 可能会保留在任意一个重叠地块中,因此只能保证在同一生成运行中生成所有重叠地块的 NavData 时进行更新。
为了确保人物始终能够在运行时正确跨越地块边界,应先在一个生成运行中始终重建所有地块的 NavData,才能在游戏的生产版本中使用该 NavData,或者执行任何涉及地块边界的测玩。