docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    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).

    Implements
    ISystem
    ISystemStartStop
    ISystemCompilerGenerated
    Inherited Members
    ValueType.Equals(object)
    ValueType.GetHashCode()
    object.Equals(object, object)
    object.GetType()
    object.ReferenceEquals(object, object)
    Namespace: Unity.NetCode
    Assembly: Unity.NetCode.dll
    Syntax
    [BurstCompile]
    [WorldSystemFilter(WorldSystemFilterFlags.ClientSimulation|WorldSystemFilterFlags.ThinClientSimulation, WorldSystemFilterFlags.Default)]
    [UpdateInGroup(typeof(InitializationSystemGroup))]
    [UpdateAfter(typeof(UpdateWorldTimeSystem))]
    public struct NetworkTimeSystem : ISystem, ISystemStartStop, ISystemCompilerGenerated

    Properties

    DefaultClientTickRate

    A new ClientTickRate instance initialized with good and sensible default values.

    Declaration
    public static 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 uint TimestampMS { get; }
    Property Value
    Type Description
    uint
    Remarks

    The TimestampMS is mostly used for sake of time synchronization (for calculting the RTT).

    Methods

    OnCreate(ref SystemState)

    Create the NetworkTimeSystemData singleton and reset the initial system state.

    Declaration
    [BurstCompile]
    public void OnCreate(ref SystemState state)
    Parameters
    Type Name Description
    SystemState state

    OnCreateForCompiler(ref SystemState)

    Declaration
    public void OnCreateForCompiler(ref SystemState state)
    Parameters
    Type Name Description
    SystemState state

    OnStartRunning(ref SystemState)

    Empty method, implement the Unity.Entities.ISystem interface.

    Declaration
    [BurstCompile]
    public void OnStartRunning(ref SystemState state)
    Parameters
    Type Name Description
    SystemState state

    OnStopRunning(ref SystemState)

    Reset the NetworkTimeSystemData data and some internal variables.

    Declaration
    [BurstCompile]
    public void OnStopRunning(ref SystemState state)
    Parameters
    Type Name Description
    SystemState state

    OnUpdate(ref SystemState)

    Implements all the time synchronization logic on the main thread.

    Declaration
    [BurstCompile]
    public void OnUpdate(ref SystemState state)
    Parameters
    Type Name Description
    SystemState state

    ResetFixedTime()

    Fixes any stray FixedTime values when domain reloads are disabled.

    Declaration
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
    public static void ResetFixedTime()

    Implements

    Unity.Entities.ISystem
    Unity.Entities.ISystemStartStop
    Unity.Entities.ISystemCompilerGenerated
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)