Struct NetworkTimeSystem
System responsible for estimating the ServerTick and InterpolationTick using the current round trip time (see NetworkSnapshotAck) and feedback from the server (see ServerCommandAge).
The system tries to keep the server tick (present on the client) ahead of the server, such that input commands (see ICommandData and IInputComponentData) are received before the server needs them for the simulation. The system speeds up and slows down the client simulation elapsed delta time to compensate for changes in the network condition, and makes the reported ServerCommandAge close to the TargetCommandSlack.
This time synchronization start taking place as soon as the first snapshot is received by the client. Because of that, until the client NetworkStreamConnection is not set in-game (see NetworkStreamInGame), the calculated server tick and interpolated are always 0.
In the case where the client and server world are on the same process, and an IPC connection is used (see IPC), some special optimizations can be applied. E.g. In this case the client should always run 1 tick per frame (server and client update in tandem).
Inherited Members
Namespace: Unity.NetCode
Syntax
[BurstCompile]
[WorldSystemFilter(WorldSystemFilterFlags.ClientSimulation | WorldSystemFilterFlags.ThinClientSimulation, WorldSystemFilterFlags.Default)]
[UpdateInGroup(typeof(InitializationSystemGroup))]
[UpdateAfter(typeof(UpdateWorldTimeSystem))]
public struct NetworkTimeSystem : ISystem, ISystemStartStop
Properties
DefaultClientTickRate
A new ClientTickRate instance initialized with good and sensible default values.
Declaration
public static readonly ClientTickRate DefaultClientTickRate { get; }
Property Value
Type | Description |
---|---|
ClientTickRate |
TimestampMS
Return a low precision real-time stamp that represents the number of milliseconds since the process started.
In Development build and Editor, the maximum reported delta in between two calls of the TimestampMS is capped
to 100 milliseconds.
Declaration
public static readonly uint TimestampMS { get; }
Property Value
Type | Description |
---|---|
UInt32 |