1.9 KiB
1.9 KiB
title, type, tags, sources, last_updated
| title | type | tags | sources | last_updated | |
|---|---|---|---|---|---|
| Actor Replication | concept |
|
2026-04-26 |
Definition
Actor 复制是 UE5 多人游戏网络同步的基础机制,允许 Actor 的属性和状态在服务器与所有客户端之间自动同步。通过 UPROPERTY(Replicated) 和 GetLifetimeReplicatedProps() 实现。
Core Mechanisms
UPROPERTY(Replicated)— 将属性标记为需要复制到所有客户端UPROPERTY(ReplicatedUsing=OnRep_X)— 带通知函数的复制,客户端可在属性变化时执行逻辑DOREPLIFETIME_CONDITION— 条件复制,如COND_OwnerOnly、COND_SimulatedOnlyGetNetPriority()— 控制 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(大多数 20–30Hz) - 使用
ReplicatedUsing让客户端能响应属性变化
Connection to Other Concepts
- Server-Authoritative Model — Actor Replication 是实现服务器权威的技术基础
- Network Prediction — 客户端利用复制的状态进行预测和调和
- Replication Graph — 空间分区优化复制性能
Relationship to Agent
UnrealMultiplayerArchitect 强调 Actor 复制的正确实现是 UE5 多人游戏开发的第一步,必须从一开始就用 DOREPLIFETIME_CONDITION 进行带宽优化。
Aliases
- UE5 Replication
- Property Replication
- State Synchronization