docs.unity3d.com
    Show / Hide Table of Contents

    Struct GhostComponentSerializer.State

    This buffer is added to the GhostCollection singleton entity. Stores serialization meta-data for the ghost. Too large to be stored in chunk memory. Values are generated by the Source Generators.

    Inherited Members
    ValueType.Equals(Object)
    ValueType.GetHashCode()
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetType()
    Namespace: Unity.NetCode.LowLevel.Unsafe
    Syntax
    [InternalBufferCapacity(0)]
    public struct State : IBufferElementData

    Fields

    ChangeMaskBits

    The number of bits necessary for the change mask.

    Declaration
    public int ChangeMaskBits
    Field Value
    Type Description
    Int32

    ComponentSize

    The size of the component, as reported by the TypeManager.

    Declaration
    public int ComponentSize
    Field Value
    Type Description
    Int32

    ComponentType

    The type of component this serializer act on.

    Declaration
    public ComponentType ComponentType
    Field Value
    Type Description
    ComponentType

    CopyFromSnapshot

    Delegate method used to transfer data from the snapshot buffer to the destination component.

    Declaration
    public PortableFunctionPointer<GhostComponentSerializer.CopyToFromSnapshotDelegate> CopyFromSnapshot
    Field Value
    Type Description
    PortableFunctionPointer<GhostComponentSerializer.CopyToFromSnapshotDelegate>

    CopyToSnapshot

    Delegate method used to transfer the component data to the snapshot buffer.

    Declaration
    public PortableFunctionPointer<GhostComponentSerializer.CopyToFromSnapshotDelegate> CopyToSnapshot
    Field Value
    Type Description
    PortableFunctionPointer<GhostComponentSerializer.CopyToFromSnapshotDelegate>

    Deserialize

    Deserialize the component and buffer data from the received snapshot and store it inside the SnapshotDataBuffer.

    Declaration
    public PortableFunctionPointer<GhostComponentSerializer.DeserializeDelegate> Deserialize
    Field Value
    Type Description
    PortableFunctionPointer<GhostComponentSerializer.DeserializeDelegate>

    GhostFieldsHash

    The hash of all serializer fields, along with their GhostFieldAttribute options properties. Used to calculate the NetworkProtocolVersion.

    Declaration
    public ulong GhostFieldsHash
    Field Value
    Type Description
    UInt64

    PostSerialize

    Delegate method to use to post-serialize the component when the ghost use pre-serialization optimization.

    Declaration
    public PortableFunctionPointer<GhostComponentSerializer.PostSerializeDelegate> PostSerialize
    Field Value
    Type Description
    PortableFunctionPointer<GhostComponentSerializer.PostSerializeDelegate>

    PostSerializeBuffer

    Delegate method to use to post-serialize buffers when the ghost use pre-serialization optimization.

    Declaration
    public PortableFunctionPointer<GhostComponentSerializer.PostSerializeBufferDelegate> PostSerializeBuffer
    Field Value
    Type Description
    PortableFunctionPointer<GhostComponentSerializer.PostSerializeBufferDelegate>

    PredictDelta

    Calculate the prediction delta for components and buffer. Used for delta-compression.

    Declaration
    public PortableFunctionPointer<GhostComponentSerializer.PredictDeltaDelegate> PredictDelta
    Field Value
    Type Description
    PortableFunctionPointer<GhostComponentSerializer.PredictDeltaDelegate>

    PrefabType

    Store the PrefabType if the attribute is present on the component. Otherwise is set to All. TODO - Try to deduplicate this data by reading the ComponentTypeSerializationStrategy directly.

    Declaration
    public GhostPrefabType PrefabType
    Field Value
    Type Description
    GhostPrefabType

    RestoreFromBackup

    Delegate method used to restore the state of a replicated component from the Unity.NetCode.GhostPredictionHistoryState buffer. Because the history buffer perform a memory copy of the whole component data, it is necessary to call this method to ensure only the replicated portion of the component is actually restored.

    Declaration
    public PortableFunctionPointer<GhostComponentSerializer.RestoreFromBackupDelegate> RestoreFromBackup
    Field Value
    Type Description
    PortableFunctionPointer<GhostComponentSerializer.RestoreFromBackupDelegate>

    SendMask

    Indicates for which type of ghosts the component should be replicated. The mask is set by code-gen base on the PrefabType constraint.

    Declaration
    public GhostComponentSerializer.SendMask SendMask
    Field Value
    Type Description
    GhostComponentSerializer.SendMask

    SendToOwner

    Store the OwnerSendType if the attribute is present on the component. Otherwise is set to All.

    Declaration
    public SendToOwnerType SendToOwner
    Field Value
    Type Description
    SendToOwnerType

    SerializationStrategyIndex

    Internal. Indexer into the Unity.NetCode.GhostComponentSerializerCollectionData.SerializationStrategies list.

    Declaration
    public short SerializationStrategyIndex
    Field Value
    Type Description
    Int16

    Serialize

    Delegate method used to serialize the component data for the root entity into the outgoing data stream. Work in batch.

    Declaration
    public PortableFunctionPointer<GhostComponentSerializer.SerializeDelegate> Serialize
    Field Value
    Type Description
    PortableFunctionPointer<GhostComponentSerializer.SerializeDelegate>

    SerializeBuffer

    Delegate method used to serialize the buffer content for the whole chunk. Work in batch for the whole chunk.

    Declaration
    public PortableFunctionPointer<GhostComponentSerializer.SerializeBufferDelegate> SerializeBuffer
    Field Value
    Type Description
    PortableFunctionPointer<GhostComponentSerializer.SerializeBufferDelegate>

    SerializeChild

    Delegate method used to serialize the component data present in the child entity into the outgoing data stream. Work on a single entity at time.

    Declaration
    public PortableFunctionPointer<GhostComponentSerializer.SerializeChildDelegate> SerializeChild
    Field Value
    Type Description
    PortableFunctionPointer<GhostComponentSerializer.SerializeChildDelegate>

    SerializerHash

    An unique hash computed by source generator that identify the serializer type.

    Declaration
    public ulong SerializerHash
    Field Value
    Type Description
    UInt64

    SerializesEnabledBit

    True if this component has the GhostEnabledBitAttribute and thus should replicate the enable bit flag.

    Declaration
    public byte SerializesEnabledBit
    Field Value
    Type Description
    Byte
    Remarks

    Note that serializing the enabled bit is different from the main "serializer". I.e. "Empty Variants" can have serialized enable bits.

    SnapshotSize

    The size of the component inside the snapshot buffer.

    Declaration
    public int SnapshotSize
    Field Value
    Type Description
    Int32

    VariantHash

    An hash identifying the specific variation used for this serializer (see GhostComponentVariationAttribute). If no variation is used, this will be the hash of the ComponentType itself, and will be true.

    Declaration
    public ulong VariantHash
    Field Value
    Type Description
    UInt64

    Properties

    HasGhostFields

    Whether SnapshotSize is greater than zero.

    Declaration
    public readonly bool HasGhostFields { get; }
    Property Value
    Type Description
    Boolean
    In This Article
    • Fields
      • ChangeMaskBits
      • ComponentSize
      • ComponentType
      • CopyFromSnapshot
      • CopyToSnapshot
      • Deserialize
      • GhostFieldsHash
      • PostSerialize
      • PostSerializeBuffer
      • PredictDelta
      • PrefabType
      • RestoreFromBackup
      • SendMask
      • SendToOwner
      • SerializationStrategyIndex
      • Serialize
      • SerializeBuffer
      • SerializeChild
      • SerializerHash
      • SerializesEnabledBit
      • SnapshotSize
      • VariantHash
    • Properties
      • HasGhostFields
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023