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;
相关推荐
mengzhi啊5 小时前
UE5 把剑绑定到骨骼-给要播放的动画及动画蒙太奇添加武器
ue5
directx3d_beginner10 小时前
32,每帧更新怪物朝向改为c++
ue5
吴梓穆1 天前
UE5 播放透明视频
ue5
日月云棠1 天前
UE5源码分析之Editor——AnimationBlueprintEditor模块全面分析
ue5
远离UE41 天前
UE5 不同贴图采样类型的区别
ue5
weixin_404679313 天前
虚幻5 如何打开关卡蓝图
ue5
dong1326975 天前
UE5FPS游戏开发教程(一)
ue5
朗迹 - 张伟7 天前
UE5.8 用Trae的AI开发功能
ue5
日月云棠8 天前
UE5 Lyra Teams模块深度分析:从队伍创建到伤害判定的完整链路
ue5
日月云棠11 天前
UE5 Lyra Inventory 物品系统模块深度分析——从数据定义到网络同步的完整链路
ue5