UE5实现客户端与服务器时间同步

图1:RTT实现原理

图2:4个客户端在5秒后实现时间同步

一、属性声明 (`BlasterPlayerController.h`)

cpp 复制代码
// 第63行:单程网络延迟 (RTT/2),public 供 SSR 等模块使用
float SingleTripTime = 0.f;

// 第180行:客户端与服务器时间差偏移量
float ClientServerDelta = 0.f;

// 第182行:时间同步累计运行时间 (每5秒重置)
float TimeSyncRunningTime = 0.f;

// 第184行:时间同步频率 (默认每5秒同步一次)
float TimeSyncFrequency = 5.f;
```

二、RPC 声明 (`BlasterPlayerController.h:86-96`)

cpp 复制代码
```cpp
/** 客户端→服务器:请求服务器当前时间 */
UFUNCTION(Server, Reliable)
void ServerRequestServerTime(float TimeOfClientRequest);

/** 服务器→客户端:回传服务器时间戳 */
UFUNCTION(Client, Reliable)
void ClientReportServerTime(float TimeOfClientRequest, float TimeServerReceivedClientRequest);

/** 获取经过同步后的服务器时间 (虚函数,服务端子类可重写) */
virtual float GetServerTime();

/** 玩家首次加入时立即同步一次 */
virtual void ReceivedPlayer() override;
相关推荐
落魄大学生之流水线上谋生计2 天前
BLACK TIDE · 黑潮
ue5
曼巴UE510 天前
UE5 客户端 需要的网络同步概念总结(3 )-事件同步 RPC 以及三种调用方式
网络·c++·网络协议·学习·rpc·ue5
归真仙人12 天前
【UE项目迁移银河麒麟(Linux)局域网会话搜索失败排查】
ue5·ue4·vr·unreal engine·银河麒麟
fanfan_hongyun14 天前
UE5.1 应用InWebSocketClient-main 接收websocket信息
ue5
远离UE415 天前
Chaos、WFC 与 FJA 原理与区别笔记
ue5
平行云15 天前
3D应用推流太贵太慢?ImmerShare Lite:利用本地算力实现极简一键分享
unity·ue5·实时云渲染·云桌面·像素流·云游戏·串流
fanfan_hongyun16 天前
UE5.1 VaRest插件 读取json http请求
ue5
SpiderCodeJ16 天前
【UE5】- UE MCP :在UE5.8编辑器中内置链接Codex
ue5·codex·智能体·mcp
weixin_4046793119 天前
ue5 widget 之间的蓝图通讯
ue5
zr想努力20 天前
GAS学习(UE5自用)
学习·ue5