1.6 KiB
1.6 KiB
title, type, tags, sources, last_updated
| title | type | tags | sources | last_updated | |||||
|---|---|---|---|---|---|---|---|---|---|
| RPC (Remote Procedure Call) | concept |
|
|
2026-04-30 |
Aliases
- 远程过程调用
- Server RPC
- Client RPC
- NetMulticast
定义
RPC(远程过程调用)是 UE5 中客户端与服务器之间通信的主要机制,允许在一个网络节点上调用另一个节点上的函数。
三种 RPC 类型
Server RPC
- 方向: 客户端 → 服务器
- 用途: 客户端向服务器发送请求(玩家输入、操作命令)
- 要求: 游戏逻辑 RPC 必须包含
_Validate()实现 - 标记:
UFUNCTION(Server, Reliable, WithValidation)
Client RPC
- 方向: 服务器 → 特定客户端(拥有该 Actor 的客户端)
- 用途: 服务器向特定客户端发送消息(私有数据、确认消息)
- 标记:
UFUNCTION(Client, Reliable)
NetMulticast
- 方向: 服务器 → 所有相关客户端
- 用途: 服务器向所有客户端广播事件(视觉特效、公共事件)
- 标记:
UFUNCTION(NetMulticast, Unreliable)
可靠性
- Reliable: 保证按序到达,但增加带宽
- Unreliable: 尽力发送,可能丢失或乱序
安全规范
每个 Server RPC 必须实现 _Validate() 函数,拒绝非法输入。缺少验证 = 作弊漏洞。
相关概念
- Server-Authoritative Model — RPC 的使用背景
- Actor Replication — 与 RPC 配合的状态同步机制
- Network Prediction — RPC 与客户端预测的协同