43 lines
1.4 KiB
Markdown
43 lines
1.4 KiB
Markdown
---
|
||
title: "Actor Replication"
|
||
type: concept
|
||
tags: ["unreal-engine", "networking", "multiplayer"]
|
||
sources: ["unreal-multiplayer-architect", "unreal-multiplayer-architect"]
|
||
last_updated: 2026-04-30
|
||
---
|
||
|
||
## Aliases
|
||
- Actor 复制
|
||
- 属性复制
|
||
- Property Replication
|
||
|
||
## 定义
|
||
Actor 复制是 UE5 中将服务器端 Actor 状态同步到客户端的核心网络机制。通过 `UPROPERTY(Replicated)` 声明需要复制的属性。
|
||
|
||
## 复制条件
|
||
- `Replicated`: 无条件复制到所有相关客户端
|
||
- `ReplicatedUsing=OnRep_Function`: 复制时触发 RepNotify 回调
|
||
- `DOREPLIFETIME_CONDITION`: 按条件复制(如 `COND_OwnerOnly`、`COND_SimulatedOnly`)
|
||
|
||
## 生命周期
|
||
1. 服务器模拟游戏逻辑,更新 Actor 属性
|
||
2. UE5 复制层检测属性变化
|
||
3. 按 `NetUpdateFrequency` 打包更新
|
||
4. 通过网络传输到客户端
|
||
5. 客户端应用更新,触发 RepNotify(如果有)
|
||
|
||
## 关键配置
|
||
- `NetUpdateFrequency`: 更新频率(默认 100Hz,通常过高)
|
||
- `MinNetUpdateFrequency`: 最小更新频率
|
||
- `GetNetPriority()`: 优先级,靠近/可见的 Actor 优先级更高
|
||
|
||
## 优化策略
|
||
- Replication Graph 空间分区
|
||
- 条件复制减少带宽
|
||
- 按 Actor 类型设置差异化频率
|
||
|
||
## 相关概念
|
||
- [[Server-Authoritative Model]] — 复制背后的权威模型
|
||
- [[Replication Graph]] — 复制优化框架
|
||
- [[GAS (Gameplay Ability System)]] — 基于复制的能力系统
|