docs.unity3d.com
    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.ReferenceEquals(Object, Object)
    Object.GetType()
    Namespace: Unity.NetCode
    Syntax
    public readonly struct 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(DefaultVariantSystemBase.Rule)

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

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

    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
    Returns
    Type Description
    DefaultVariantSystemBase.Rule

    GetHashCode()

    Unique HashCode if Variant fields are set.

    Declaration
    public override readonly int GetHashCode()
    Returns
    Type Description
    Int32
    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
    Returns
    Type Description
    DefaultVariantSystemBase.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
    Returns
    Type Description
    DefaultVariantSystemBase.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
    Type variantForChildren
    Returns
    Type Description
    DefaultVariantSystemBase.Rule
    In This Article
    • Fields
      • VariantForChildren
      • VariantForParents
    • Methods
      • Equals(DefaultVariantSystemBase.Rule)
      • ForAll(Type)
      • GetHashCode()
      • OnlyChildren(Type)
      • OnlyParents(Type)
      • Unique(Type, Type)
    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