Files
nexus/wiki/concepts/ClientPrediction.md
2026-04-26 12:02:53 +08:00

1.5 KiB
Raw Blame History

title, type, tags, sources, last_updated
title type tags sources last_updated
Client Prediction concept
networking
multiplayer
latency
unity-multiplayer-engineer
2026-04-26

Aliases

  • Client-Side Prediction
  • 客户端预测

Definition

客户端预测是一种在服务器权威模型下的优化技术,允许客户端立即执行输入预测移动,无需等待服务器确认,从而提供流畅的用户体验。当服务器状态与客户端预测不一致时,触发**调和Reconciliation**机制进行校正。

How It Works (Unity NGO Pattern)

  1. 客户端读取本地输入,立即更新本地渲染位置
  2. 客户端通过 ServerRpc 发送输入到服务器
  3. 服务器模拟输入,更新权威状态,广播给所有客户端
  4. 客户端在 LateUpdate 中比较预测位置与服务器位置
  5. 当偏差超过阈值时,强制将客户端位置回正到服务器位置

Key Parameters

  • ReconciliationThreshold: 触发回正的偏差阈值(建议 0.5 单位)
  • 输入队列:客户端缓存最近 N 帧的输入,用于服务器重模拟

Unity Implementation Pattern

// Reconciliation logic in LateUpdate
if (Vector3.Distance(transform.position, _serverPosition.Value) > _reconciliationThreshold)
{
    _clientPredictedPosition = _serverPosition.Value;
    transform.position = _clientPredictedPosition;
}