Language:
Page Info
Engine Version:
Share
此中文页面内容对应的英文页面有后续更新,如需浏览最新文档可切换至英文页面浏览。

性能与带宽提示

复制 actor 是一件耗费时间的工作。引擎会尽量让这个过程变得更有效率,但您也可以做一些额外的工作来简化这个过程。

在收集 actor 用于复制时,服务器将检查一些事项,如相关性、更新频度、休眠情况等。您可以调整这些检查项以改善性能。要最大限度提升这一过程的效率,最好是遵循以下优先顺序:

  • 关闭复制(AActor::SetReplicates( false )

    • 当 actor 未进行复制时,它最初不会出现在列表中,我们可以充分利用这一点,确保那些无需复制的 actor 会有相应标记。

  • 减少 NetUpdateFrequency 值

    • actor 的更新次数越少,更新所用的时间就越短。最好是尽量压低这个数值。该数值代表了这个 actor 每秒复制到客户端的频度。

  • 休眠情况

  • 相关性

  • NetClientTicksPerSecond

如果属性并非是绝对必需,则不要将其标记为复制。如果可以,最好能尝试从现有的已复制属性中派生状态。

尝试利用已有的量化函数,如 FVector_NetQuantize。这样能大大减少向客户端复制此状态时所需的大小,如果使用得当,就不会导致任何明显的偏差。

FName 一般不会被压缩,所以在使用它们作为 RPC 的参数时,请记住它们通常会向字符串发送所有调用。这会产生很大的资源消耗。