介绍
Fusion 供应了一种机制,用于在每个同步帧收集玩家输入,将收集到的输入数据存储在历史缓冲区中,并自动将这些数据复制到服务器。
Fusion主要提供此机制以使客户端预测成为可能。在客户端进行预测(HasInputAuthority == true)以及在服务器端,同步帧(Tick)输入均用于同步帧仿真模拟(FixedUpdateNetwork()),以在两者之间产生一致的结果。客户端上的历史缓冲区用于同步帧的重仿真模拟。
输入结构定义
输入结构体具有以下约束条件:
- 它必须继承自 INetworkInput;
- 它只能含有核心基本类型和结构体;
- 输入结构体及其所包含的任何结构体都必须是顶级结构体(即不能嵌套在类中);并且,
- 通过对于布尔值,请使用 NetworkBool 而不是 bool —— C# 并不会在不同平台之间强制统一布尔值的大小,因此利用 NetworkBool 能够将其正确地以单个位的形式进行序列化。
Fusion能够智能地识别结构体的类型;这使得能够针对不同的游戏模式或游戏的不同部分使用不同的结构体。在解包输入数据时,Fusion只会返回正确类型的可用输入内容。
public struct MyInput