docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Struct DefaultVariantSystemBase.Rule

    When defining default variants for a type, you must denote whether or not this variant will be applied to both parents and children.

    Inherited Members
    ValueType.Equals(object)
    object.Equals(object, object)
    object.GetType()
    object.ReferenceEquals(object, object)
    Namespace: Unity.NetCode
    Assembly: Unity.NetCode.dll
    Syntax
    public readonly struct DefaultVariantSystemBase.Rule

    Fields

    VariantForChildren

    The variant to use for all child entities.

    Declaration
    public readonly Type VariantForChildren
    Field Value
    Type Description
    Type
    Remarks

    Child entities default to DontSerializeVariant for performance reasons.

    VariantForParents

    The variant to use for all top-level (i.e. root/parent level) entities.

    Declaration
    public readonly Type VariantForParents
    Field Value
    Type Description
    Type
    Remarks

    Parent entities default to send (i.e. serialize all "Ghost Fields" using the settings defined in the GhostFieldAttribute).

    Methods

    Equals(Rule)

    Compare two rules ana check if their parent and child types are identical.

    Declaration
    public bool Equals(DefaultVariantSystemBase.Rule other)
    Parameters
    Type Name Description
    DefaultVariantSystemBase.Rule other

    Rule to test equality against

    Returns
    Type Description
    bool

    Whether they variant type for parents and children match.

    ForAll(Type)

    This rule will add the same variant to all entities with this component type (i.e. both parent and children a.k.a. regardless of hierarchy). Note: It is not recommended to serialize child entities as it is relatively slow to serialize them!

    Declaration
    public static DefaultVariantSystemBase.Rule ForAll(Type variantForBoth)
    Parameters
    Type Name Description
    Type variantForBoth

    All entities with this component type will receive the variant

    Returns
    Type Description
    DefaultVariantSystemBase.Rule

    Updated rule

    GetHashCode()

    Unique HashCode if Variant fields are set.

    Declaration
    public override int GetHashCode()
    Returns
    Type Description
    int

    A unique hashcode if variant fields are set. Otherwise 0.

    Overrides
    ValueType.GetHashCode()

    OnlyChildren(Type)

    This rule will only add this variant to child entities with this component. The parent entities with this component will use the default serializer. Note: It is not recommended to serialize child entities as it is relatively slow to serialize them!

    Declaration
    public static DefaultVariantSystemBase.Rule OnlyChildren(Type variantForChildrenOnly)
    Parameters
    Type Name Description
    Type variantForChildrenOnly

    Child entities with this component type will receive the variant

    Returns
    Type Description
    DefaultVariantSystemBase.Rule

    Updated rule

    OnlyParents(Type)

    This rule will only add the variant to parent entities with this component type. Children with this component will remain DontSerializeVariant (which is the default for children). This is the recommended approach.

    Declaration
    public static DefaultVariantSystemBase.Rule OnlyParents(Type variantForParentOnly)
    Parameters
    Type Name Description
    Type variantForParentOnly

    Parent entities with this component type will receive the variant

    Returns
    Type Description
    DefaultVariantSystemBase.Rule

    Updated rule

    Unique(Type, Type)

    This rule will add one variant for parents, and another variant for children, by default. Note: It is not recommended to serialize child entities as it is relatively slow to serialize them!

    Declaration
    public static DefaultVariantSystemBase.Rule Unique(Type variantForParents, Type variantForChildren)
    Parameters
    Type Name Description
    Type variantForParents

    Parent entities with this component type will receive the variant

    Type variantForChildren

    Child entities with this component type will receive the variant

    Returns
    Type Description
    DefaultVariantSystemBase.Rule

    Updated rule

    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)