Files
nexus/wiki/concepts/Actor-Replication.md
2026-04-26 12:02:53 +08:00

1.9 KiB
Raw Blame History

title, type, tags, sources, last_updated
title type tags sources last_updated
Actor Replication concept
unreal-multiplayer-architect
2026-04-26

Definition

Actor 复制是 UE5 多人游戏网络同步的基础机制,允许 Actor 的属性和状态在服务器与所有客户端之间自动同步。通过 UPROPERTY(Replicated)GetLifetimeReplicatedProps() 实现。

Core Mechanisms

  • UPROPERTY(Replicated) — 将属性标记为需要复制到所有客户端
  • UPROPERTY(ReplicatedUsing=OnRep_X) — 带通知函数的复制,客户端可在属性变化时执行逻辑
  • DOREPLIFETIME_CONDITION — 条件复制,如 COND_OwnerOnlyCOND_SimulatedOnly
  • GetNetPriority() — 控制 Actor 的复制优先级
  • SetNetUpdateFrequency() — 控制 Actor 的复制频率

Key Implementation

void AMyNetworkedActor::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
    Super::GetLifetimeReplicatedProps(OutLifetimeProps);
    DOREPLIFETIME(AMyNetworkedActor, Health);
    DOREPLIFETIME_CONDITION(AMyNetworkedActor, PrivateInventoryCount, COND_OwnerOnly);
}

Best Practices

  • 仅复制所有客户端都需要的状态
  • 使用 COND_OwnerOnly 减少私有状态的带宽消耗
  • 按 Actor 类型设置合适的 NetUpdateFrequency(大多数 2030Hz
  • 使用 ReplicatedUsing 让客户端能响应属性变化

Connection to Other Concepts

Relationship to Agent

UnrealMultiplayerArchitect 强调 Actor 复制的正确实现是 UE5 多人游戏开发的第一步,必须从一开始就用 DOREPLIFETIME_CONDITION 进行带宽优化。

Aliases

  • UE5 Replication
  • Property Replication
  • State Synchronization