Actor 是实现复制的主要推动者
Actor 主要通过两种方式进行更新:
-
属性更新
-
RPC (远程过程调用)。
组件复制:
尽管使用起来简单直观,但它却有些不同寻常:大多数组件都不会复制
组件复制中涉及两大类组件。一
种是随 Actor 一起创建的静态组件。也就是说,在客户端或服务器上生成 所属 Actor 时,这些组件也会同时生成,与组件是否被复制无关。服务器不会告知客户端显式生成这些组件。 在此背景下,静态组件是作为默认子对象在 C++ 构造函数中创建,或是在蓝图编辑器的组件模式中创建。静态组件无需通过复制存在于客户端;它们将默认存在。只有在属性或事件需要在服务器和客户端之间自动同步时,才需要进行复制。
动态组件是在运行时在服务器上生成的组件种,其创建和删除操作也将被复制到客户端。它们的运行方式与 Actor 极为一致。与静态组件不同, 动态组件需通过复制的方式存在于所有客户端。另外,客户端可以生成自己的本地非复制组件。这适合于很多种情形。只有当那些在服务器上触发的 属性或事件需要自动同步到客户端时,才会出现复制行为。