Skip to main content

Unity.Netcode.NetworkTimeSystem

NetworkTimeSystem is a standalone system which can be used to run a network time simulation. The network time system maintains both a local and a server time. The local time is based on

Inheritance#

System.Dynamic.ExpandoObject

System.Dynamic.ExpandoObject

Inherited Members#

Object.Equals(Object)

Object.Equals(Object, Object)

Object.GetHashCode()

Object.GetType()

Object.MemberwiseClone()

Object.ReferenceEquals(Object, Object)

Object.ToString()

Namespace: System.Dynamic.ExpandoObject#
Assembly: MLAPI.dll#
Syntax#
public class NetworkTimeSystem

NetworkTimeSystem(Double, Double, Double, Double)#

Declaration#

public NetworkTimeSystem(double localBufferSec, double serverBufferSec, double hardResetThresholdSec, double adjustmentRatio = 0.01)

Parameters#

TypeNameDescription
System.DoublelocalBufferSec
System.DoubleserverBufferSec
System.DoublehardResetThresholdSec
System.DoubleadjustmentRatio

#

AdjustmentRatio#

Gets or sets the ratio at which the NetworkTimeSystem speeds up or slows down time.

Declaration#

public double AdjustmentRatio { get; set; }

Property Value#

TypeDescription
System.Double

HardResetThresholdSec#

Gets or sets a threshold in seconds used to force a hard catchup of network time.

Declaration#

public double HardResetThresholdSec { get; set; }

Property Value#

TypeDescription
System.Double

LocalBufferSec#

Gets or sets the amount of time in seconds the server should buffer incoming client messages. This increases the difference between local and server time so that messages arrive earlier on the server.

Declaration#

public double LocalBufferSec { get; set; }

Property Value#

TypeDescription
System.Double

LocalTime#

Declaration#

public double LocalTime { get; }

Property Value#

TypeDescription
System.Double

ServerBufferSec#

Gets or sets the amount of the time in seconds the client should buffer incoming messages from the server. This increases server time. A higher value increases latency but makes the game look more smooth in bad networking conditions. This value must be higher than the tick length client side.

Declaration#

public double ServerBufferSec { get; set; }

Property Value#

TypeDescription
System.Double

ServerTime#

Declaration#

public double ServerTime { get; }

Property Value#

TypeDescription
System.Double

#

Advance(Double)#

Advances the time system by a certain amount of time. Should be called once per frame with Time.deltaTime or similar.

Declaration#

public bool Advance(double deltaTimeSec)

Parameters#

TypeNameDescription
System.DoubledeltaTimeSecThe amount of time to advance. The delta time which passed since Advance was last called.

Returns#

TypeDescription
System.Boolean

Reset(Double, Double)#

Resets the time system to a time based on the given network parameters.

Declaration#

public void Reset(double serverTimeSec, double rttSec)

Parameters#

TypeNameDescription
System.DoubleserverTimeSecThe most recent server time value received in seconds.
System.DoublerttSecThe current RTT in seconds. Can be an averaged or a raw value.

ServerTimeSystem()#

Creates a new instance of the NetworkTimeSystem class for a server instance. The server will not apply any buffer values which ensures that local time equals server time.

Declaration#

public static NetworkTimeSystem ServerTimeSystem()

Returns#

TypeDescription
NetworkTimeSystemThe instance.

Sync(Double, Double)#

Synchronizes the time system with up-to-date network statistics but does not change any time values or advance the time.

Declaration#

public void Sync(double serverTimeSec, double rttSec)

Parameters#

TypeNameDescription
System.DoubleserverTimeSecThe most recent server time value received in seconds.
System.DoublerttSecThe current RTT in seconds. Can be an averaged or a raw value.