docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Struct NetworkTime

    Present on both client and server world, singleton component that contains all the timing characterist of the client/server simulation loop.

    Implements
    IComponentData
    IQueryTypeParameter
    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
    public struct NetworkTime : IComponentData, IQueryTypeParameter

    Fields

    InterpolationTick

    The current interpolated tick (integral part). Always less than the ServerTick on the Client (and equal to ServerTick on the server).

    Declaration
    public NetworkTick InterpolationTick
    Field Value
    Type Description
    NetworkTick

    InterpolationTickFraction

    The fractional part of the tick (XXX.fraction). Always in between (0.0, 1.0]

    Declaration
    public float InterpolationTickFraction
    Field Value
    Type Description
    float

    ServerTick

    The current simulated server tick the server will run this frame. Always start from 1. 0 is consider an invalid value. The ServerTick value behave differently on client and server. On the server:

    • it is always a "full" tick
    • strict monontone and continue (up to the wrap around)
    • the same inside or outside the prediction loop On the client:
    • it is the tick the client predict the server should simulate this frame. Depends on current lag and command slack
    • can be either a full or partial.
    • if the tick is partial, the client would run the simulation for it multiple time, each time with a different delta time proportion
    • it is not monotone:
      • in some rare/recovery situation may rollback or having jump forward (due to time/lag adjustments).
      • during the prediction loop the ServerTick value is changed to match either the last full simulated tick or , in case of a rollback because a snapshot has been received, to the oldest received tick among all entities. In both case, and the end of of the prediction loop the server tick will be reset to current predicted server tick.
    Declaration
    public NetworkTick ServerTick
    Field Value
    Type Description
    NetworkTick

    ServerTickFraction

    Only meaningful on the client that run at variable step rate. On the server is always 1.0. Always in range is (0.0 and 1.0].

    Declaration
    public float ServerTickFraction
    Field Value
    Type Description
    float

    SimulationStepBatchSize

    The number of simulation steps this tick is scaled with. This is used to make one update which covers N ticks in order to reduce CPU cost. This is always 1 for partial ticks in the prediction loop, but can be more than 1 for partial ticks outside the prediction loop.

    Declaration
    public int SimulationStepBatchSize
    Field Value
    Type Description
    int

    Properties

    IsCatchUpTick

    Only valid on server. True when the current simulated tick is running with a variabled delta time to recover from a previous long running frame.

    Declaration
    public bool IsCatchUpTick { get; }
    Property Value
    Type Description
    bool

    IsFinalFullPredictionTick

    Only valid inside the prediction loop. The current server tick which will be the last full tick we are predicting

    Declaration
    public bool IsFinalFullPredictionTick { get; }
    Property Value
    Type Description
    bool

    IsFinalPredictionTick

    Only valid inside the prediction loop. The current server tick which will be the last tick to predict

    Declaration
    public bool IsFinalPredictionTick { get; }
    Property Value
    Type Description
    bool

    IsFirstPredictionTick

    Only valid inside the prediction loop. The server tick the prediction is starting from.

    Declaration
    public bool IsFirstPredictionTick { get; }
    Property Value
    Type Description
    bool

    IsFirstTimeFullyPredictingTick

    Only valid inside the prediction loop. True when this ServerTick is being predicted in full for the first time. "In full" meaning the first non-partial simulation tick. I.e. Partial ticks don't count.

    Declaration
    public bool IsFirstTimeFullyPredictingTick { get; }
    Property Value
    Type Description
    bool

    IsInPredictionLoop

    Indicate that the current ServerTick is a predicted one and the simulation is running inside the prediction group.

    Declaration
    public bool IsInPredictionLoop { get; }
    Property Value
    Type Description
    bool

    IsPartialTick

    True if the current tick is running with delta time that is a fraction of the ServerTickDeltaTime. Only true on the client when running at variable frame rate.

    Declaration
    public bool IsPartialTick { get; }
    Property Value
    Type Description
    bool

    PredictedTickIndex

    Counts the number of predicted ticks triggered on this frame (while inside the prediction loop). Thus, client only, and increments BEFORE the tick occurs (i.e. the first predicted tick will have a value of 1). Outside the prediction loop, records the current or last frames prediction tick count (until prediction restarts).

    Declaration
    public readonly int PredictedTickIndex { get; }
    Property Value
    Type Description
    int

    Methods

    ToFixedString()

    Helper to debug NetworkTime issues via logs.

    Declaration
    public FixedString512Bytes ToFixedString()
    Returns
    Type Description
    FixedString512Bytes

    Formatted string containing NetworkTime data.

    Implements

    Unity.Entities.IComponentData
    Unity.Entities.IQueryTypeParameter
    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)