docs.unity3d.com
  • Manual
  • Scripting API
  • Changelog
  • License
    Show / Hide Table of Contents
    • Global Namespace
      • Netcode​Conversion​Target
      • Netcode​Transform​Usage​Flags​Test​Authoring
      • Netcode​Transform​Usage​Flags​Test​Authoring.​Baker
      • Test​Net​Code​Authoring
      • Test​Net​Code​Authoring.​IConverter
    • Unity.​Net​Code
      • Apply​Current​Input​Buffer​Element​To​Input​Data<TInput​Buffer​Data, TInput​Component​Data>
      • Apply​Current​Input​Buffer​Element​To​Input​Data<TInput​Buffer​Data, TInput​Component​Data>.​Apply​Input​Data​From​Buffer​Job
      • Auto​Command​Target
      • Batch​Predict​Attribute
      • Client​Only​Variant
      • Client​Populate​Prespawned​Ghosts​System
      • Client​Server​Bootstrap
      • Client​Server​Bootstrap.​Play​Type
      • Client​Server​Tick​Rate
      • Client​Server​Tick​Rate.​Frame​Rate​Mode
      • Client​Server​World​Extensions
      • Client​Tick​Rate
      • Client​Track​Loaded​Prespawn​Sections
      • Command​Data​Interpolation​Delay
      • Command​Data​Utility
      • Command​Receive​System<TCommand​Data​Serializer, TCommand​Data>
      • Command​Receive​System<TCommand​Data​Serializer, TCommand​Data>.​Receive​Job​Data
      • Command​Receive​System​Group
      • Command​Send​System<TCommand​Data​Serializer, TCommand​Data>
      • Command​Send​System<TCommand​Data​Serializer, TCommand​Data>.​Send​Job​Data
      • Command​Send​System​Group
      • Command​Target
      • Command​Target​Component
      • Compare​Command​System​Group
      • Component​Type​Serialization​Strategy
      • Component​Type​Serialization​Strategy.​Default​Type
      • Connection​State
      • Connection​State.​State
      • Convert​Prediction​Entry
      • Copy​Input​To​Command​Buffer<TInput​Buffer​Data, TInput​Component​Data>
      • Copy​Input​To​Command​Buffer<TInput​Buffer​Data, TInput​Component​Data>.​Copy​Input​To​Buffer​Job
      • Default​Driver​Builder
      • Default​Smoothing​Action​User​Params
      • Default​Smoothing​Action​User​Params​Authoring
      • Default​Translation​Smoothing​Action
      • Default​Translation​Smoothing​Action.​Default​Static​User​Params
      • Default​Variant​System​Base
      • Default​Variant​System​Base.​Rule
      • Default​Variant​System​Group
      • Disable​Automatic​Prespawn​Section​Reporting
      • Disable​Automatic​Prespawn​Section​Reporting​Authoring
      • Disconnect​Reason​Enum​To​String
      • Dont​Serialize​For​Command​Attribute
      • Dont​Serialize​Variant
      • Dont​Support​Prefab​Overrides​Attribute
      • Driver​Migration​System
      • Enable​Packet​Logging
      • Fixed​Step​Ghost​Prediction​System​Group
      • Game​Protocol​Version
      • Ghost​Authoring​Component
      • Ghost​Authoring​Inspection​Component
      • Ghost​Child​Entity
      • Ghost​Child​Entity​Component
      • Ghost​Collection
      • Ghost​Collection​Prefab
      • Ghost​Collection​Prefab.​Loading​State
      • Ghost​Collection​System
      • Ghost​Component
      • Ghost​Component​Attribute
      • Ghost​Component​Serializer​Collection​Data
      • Ghost​Component​Serializer​Collection​System​Group
      • Ghost​Component​Utilities
      • Ghost​Component​Variation​Attribute
      • Ghost​Connection​Position
      • Ghost​Count
      • Ghost​Delta​Predictor
      • Ghost​Deserializer​State
      • Ghost​Despawn​System
      • Ghost​Distance​Data
      • Ghost​Distance​Importance
      • Ghost​Distance​Partitioning​System
      • Ghost​Distance​Partition​Shared
      • Ghost​Enabled​Bit​Attribute
      • Ghost​Field​Attribute
      • Ghost​Field​Sub​Type
      • Ghost​Group
      • Ghost​Importance
      • Ghost​Importance.​Scale​Importance​Delegate
      • Ghost​Input​System​Group
      • Ghost​Instance
      • Ghost​Mode
      • Ghost​Mode​Mask
      • Ghost​Optimization​Mode
      • Ghost​Owner
      • Ghost​Owner​Component
      • Ghost​Owner​Is​Local
      • Ghost​Prediction​History​System
      • Ghost​Prediction​Smoothing
      • Ghost​Prediction​Smoothing.​Smoothing​Action​Delegate
      • Ghost​Prediction​Smoothing​System
      • Ghost​Prediction​Switching​Queues
      • Ghost​Prediction​Switching​System
      • Ghost​Prediction​System​Group
      • Ghost​Prefab​Creation
      • Ghost​Prefab​Creation.​Component
      • Ghost​Prefab​Creation.​Component​Override
      • Ghost​Prefab​Creation.​Component​Override​Type
      • Ghost​Prefab​Creation.​Config
      • Ghost​Prefab​Type
      • Ghost​Receive​System
      • Ghost​Relevancy
      • Ghost​Relevancy​Mode
      • Ghost​Send​System
      • Ghost​Send​System​Data
      • Ghost​Send​Type
      • Ghost​Serializer​Attribute
      • Ghost​Serializer​State
      • Ghost​Simulation​System​Group
      • Ghost​Spawn​Buffer
      • Ghost​Spawn​Buffer.​Type
      • Ghost​Spawn​Classification​System
      • Ghost​Spawn​Queue
      • Ghost​Spawn​Queue​Component
      • Ghost​Spawn​System
      • Ghost​Spawn​System​Group
      • Ghost​Type
      • Ghost​Type​Component
      • Ghost​Type​Partition
      • Ghost​Update​System
      • ICommand​Data
      • ICommand​Data​Serializer<T>
      • IGhost​Component​Serializer​Registration
      • IInput​Buffer​Data
      • IInput​Component​Data
      • Incoming​Command​Data​Stream​Buffer
      • Incoming​Command​Data​Stream​Buffer​Component
      • Incoming​Rpc​Data​Stream​Buffer
      • Incoming​Rpc​Data​Stream​Buffer​Component
      • Incoming​Snapshot​Data​Stream​Buffer
      • Incoming​Snapshot​Data​Stream​Buffer​Component
      • INetwork​Stream​Driver​Constructor
      • Input​Event
      • IPCAnd​Socket​Driver​Constructor
      • IRpc​Command
      • IRpc​Command​Serializer<T>
      • Lag​Compensation​Config
      • Migration​Ticket
      • Net​Code​Debug​Config
      • Net​Code​Debug​Config​Authoring
      • Net​Code​Disable​Command​Code​Gen​Attribute
      • Net​Code​Physics​Config
      • Net​Debug
      • Net​Debug.​Log​Level​Type
      • Net​Debug​System
      • Network​Driver​Store
      • Network​Driver​Store.​Driver​Visitor
      • Network​Driver​Store.​Network​Driver​Instance
      • Network​Id
      • Network​Id​Component
      • Network​Id​Debug​Color​Utility
      • Network​Protocol​Version
      • Network​Receive​System​Group
      • Network​Snapshot​Ack
      • Network​Snapshot​Ack​Component
      • Network​Stream​Connection
      • Network​Stream​Connect​System
      • Network​Stream​Disconnect​Reason
      • Network​Stream​Driver
      • Network​Stream​In​Game
      • Network​Stream​Listen​System
      • Network​Stream​Protocol
      • Network​Stream​Receive​System
      • Network​Stream​Request​Connect
      • Network​Stream​Request​Disconnect
      • Network​Stream​Request​Listen
      • Network​Stream​Request​Listen​Result
      • Network​Stream​Request​Listen​Result.​State
      • Network​Stream​Snapshot​Target​Size
      • Network​Tick
      • Network​Time
      • Network​Time​Flags
      • Network​Time​System
      • Network​Time​System​Data
      • Outgoing​Command​Data​Stream​Buffer
      • Outgoing​Command​Data​Stream​Buffer​Component
      • Outgoing​Rpc​Data​Stream​Buffer
      • Outgoing​Rpc​Data​Stream​Buffer​Component
      • Pending​Spawn​Placeholder
      • Pending​Spawn​Placeholder​Component
      • Physics​Default​Variant​System
      • Physics​Graphical​Smoothing​Default​Variant
      • Physics​Velocity​Default​Variant
      • Physics​World​History
      • Physics​World​History​Singleton
      • Portable​Function​Pointer<T>
      • Position​Only​Variant
      • Position​Rotation​Variant
      • Position​Scale​Variant
      • Predicted​Fixed​Step​Simulation​System​Group
      • Predicted​Ghost
      • Predicted​Ghost​Component
      • Predicted​Ghost​Spawn
      • Predicted​Ghost​Spawn​List
      • Predicted​Ghost​Spawn​Request
      • Predicted​Ghost​Spawn​Request​Component
      • Predicted​Ghost​Spawn​System
      • Predicted​Physics​Config​System
      • Predicted​Physics​Non​Ghost​World
      • Predicted​Physics​Validation​System
      • Predicted​Simulation​System​Group
      • Pre​Serialized​Ghost
      • Pre​Spawned​Ghost​Index
      • Prespawn​Ghost​System​Group
      • Prespawn​Section​Ack
      • Receive​Rpc​Command​Request
      • Receive​Rpc​Command​Request​Component
      • Relevant​Ghost​For​Connection
      • Rotation​Only​Variant
      • Rotation​Scale​Variant
      • Rpc​Collection
      • Rpc​Command​Request<TAction​Serializer, TAction​Request>
      • Rpc​Command​Request<TAction​Serializer, TAction​Request>.​Send​Rpc​Data
      • Rpc​Command​Request​System​Group
      • Rpc​Deserializer​State
      • Rpc​Executor
      • Rpc​Executor.​Execute​Delegate
      • Rpc​Executor.​Parameters
      • Rpc​Queue<TAction​Serializer, TAction​Request>
      • Rpc​Serializer​State
      • Rpc​System
      • Rpc​System​Errors
      • Send​Rpc​Command​Request
      • Send​Rpc​Command​Request​Component
      • Send​To​Owner​Type
      • Server​Only​Variant
      • Server​Populate​Prespawned​Ghosts​System
      • Server​Track​Loaded​Prespawn​Sections
      • Shared​Ghost​Type​Component
      • Simulator​Preset
      • Smoothing​Action
      • Snapshot​Data
      • Snapshot​Data.​Data​At​Tick
      • Snapshot​Data​Buffer
      • Snapshot​Dynamic​Buffers​Helper
      • Snapshot​Dynamic​Data​Buffer
      • Spawned​Ghost
      • Spawned​Ghost​Entity​Map
      • Sub​Scene​Ghost​Component​Hash
      • Sub​Scene​With​Prespawn​Ghosts
      • Supports​Prefab​Overrides​Attribute
      • Switch​Prediction​Smoothing
      • Switch​Prediction​Smoothing​Physics​Ordering​System
      • Switch​Prediction​Smoothing​System
      • Transform​Default​Variant
      • Transform​Default​Variant​System
      • Transport​Type
      • Unique​Input​Tick​Map
      • Unscaled​Client​Time
    • Unity.​Net​Code.​Editor
      • Prespawned​Ghost​Preprocess​Scene
    • Unity.​Net​Code.​Generators
      • Type​Registry​Entry
      • User​Defined​Templates
    • Unity.​Net​Code.​Hybrid
      • Baker​Extensions
      • Enable​Animation​Controller​Prediction​Update
      • Ghost​Animation​Controller
      • Ghost​Animation​Controller​Interpolation​System
      • Ghost​Animation​Controller​Prediction​System
      • Ghost​Animation​Controller​Server​System
      • Ghost​Animation​Graph​Asset
      • Ghost​Playable​Behaviour
      • Ghost​Presentation​Game​Object​Authoring
      • Ghost​Presentation​Game​Object​Entity​Owner
      • Ghost​Presentation​Game​Object​Prefab
      • Ghost​Presentation​Game​Object​Prefab​Reference
      • Ghost​Presentation​Game​Object​System
      • Ghost​Presentation​Game​Object​Transform​System
      • IRegister​Playable​Data
    • Unity.​Net​Code.​Low​Level
      • Snapshot​Data​Buffer​Component​Lookup
      • Snapshot​Data​Lookup​Helper
    • Unity.​Net​Code.​Low​Level.​Unsafe
      • Ghost​Component​Serializer
      • Ghost​Component​Serializer.​Copy​To​From​Snapshot​Delegate
      • Ghost​Component​Serializer.​Deserialize​Delegate
      • Ghost​Component​Serializer.​Post​Serialize​Buffer​Delegate
      • Ghost​Component​Serializer.​Post​Serialize​Delegate
      • Ghost​Component​Serializer.​Predict​Delta​Delegate
      • Ghost​Component​Serializer.​Report​Prediction​Errors​Delegate
      • Ghost​Component​Serializer.​Restore​From​Backup​Delegate
      • Ghost​Component​Serializer.​Send​Mask
      • Ghost​Component​Serializer.​Serialize​Buffer​Delegate
      • Ghost​Component​Serializer.​Serialize​Child​Delegate
      • Ghost​Component​Serializer.​Serialize​Delegate
      • Ghost​Component​Serializer.​State
    • Scripting API
    • Unity.​Net​Code
    • Default​Variant​System​Base

    Class DefaultVariantSystemBase

    DefaultVariantSystemBase is an abstract base class that should be used to update the default variants in GhostComponentSerializerCollectionData, which contains what serialization variant to use (GhostComponentVariationAttribute) for certain type. A concrete implementation must implement the RegisterDefaultVariants(Dictionary<ComponentType, DefaultVariantSystemBase.Rule>) method and add to the dictionary the desired type-variant pairs.

    The system must (and will be) created in both runtime and baking worlds. During baking, in particular, the GhostComponentSerializerCollectionSystemGroup is used by the GhostAuthoringBakingSystem to configure the ghost prefabs meta-data with the defaults values.

    The abstract base class already has the correct flags / update in world attributes set. It is not necessary for the concrete implementation to specify the flags, nor the WorldSystemFilterAttribute.

    CREATION FLOW

    All the default variant systems must be created after the GhostComponentSerializerCollectionSystemGroup (that is responsible to create the the default ghost variant mapping singleton). The DefaultVariantSystemBase already has the the correct CreateAfterAttribute set, and it is not necessary for the sub-class to add the explicitly add/set this creation order again.

    Inheritance
    Object
    ComponentSystemBase
    SystemBase
    DefaultVariantSystemBase
    Inherited Members
    SystemBase.CompleteDependency()
    SystemBase.Update()
    SystemBase.GetComponent<T>(Entity)
    SystemBase.SetComponent<T>(Entity, T)
    SystemBase.HasComponent<T>(Entity)
    SystemBase.HasBuffer<T>(Entity)
    SystemBase.GetComponentLookup<T>(Boolean)
    SystemBase.GetComponentDataFromEntity<T>(Boolean)
    SystemBase.GetBuffer<T>(Entity, Boolean)
    SystemBase.GetBufferLookup<T>(Boolean)
    SystemBase.GetBufferFromEntity<T>(Boolean)
    SystemBase.GetEntityStorageInfoLookup()
    SystemBase.GetStorageInfoFromEntity()
    SystemBase.Exists(Entity)
    SystemBase.Dependency
    SystemBase.CheckedStateRef
    SystemBase.Entities
    SystemBase.Job
    ComponentSystemBase.ShouldRunSystem()
    ComponentSystemBase.GetComponentTypeHandle<T>(Boolean)
    ComponentSystemBase.GetDynamicComponentTypeHandle(ComponentType)
    ComponentSystemBase.GetBufferTypeHandle<T>(Boolean)
    ComponentSystemBase.GetSharedComponentTypeHandle<T>()
    ComponentSystemBase.GetDynamicSharedComponentTypeHandle(ComponentType)
    ComponentSystemBase.GetEntityTypeHandle()
    ComponentSystemBase.RequireForUpdate(EntityQuery)
    ComponentSystemBase.RequireAnyForUpdate(EntityQuery[])
    ComponentSystemBase.RequireAnyForUpdate(NativeArray<EntityQuery>)
    ComponentSystemBase.RequireForUpdate<T>()
    ComponentSystemBase.RequireSingletonForUpdate<T>()
    ComponentSystemBase.HasSingleton<T>()
    ComponentSystemBase.GetSingleton<T>()
    ComponentSystemBase.GetSingletonRW<T>()
    ComponentSystemBase.GetSingletonBuffer<T>(Boolean)
    ComponentSystemBase.TryGetSingleton<T>(T)
    ComponentSystemBase.TryGetSingletonBuffer<T>(DynamicBuffer<T>)
    ComponentSystemBase.SetSingleton<T>(T)
    ComponentSystemBase.GetSingletonEntity<T>()
    ComponentSystemBase.TryGetSingletonEntity<T>(Entity)
    ComponentSystemBase.GetEntityQuery(ComponentType[])
    ComponentSystemBase.GetEntityQuery(NativeArray<ComponentType>)
    ComponentSystemBase.GetEntityQuery(EntityQueryDesc[])
    ComponentSystemBase.GetEntityQuery(EntityQueryBuilder)
    ComponentSystemBase.Enabled
    ComponentSystemBase.EntityQueries
    ComponentSystemBase.GlobalSystemVersion
    ComponentSystemBase.LastSystemVersion
    ComponentSystemBase.EntityManager
    ComponentSystemBase.World
    ComponentSystemBase.SystemHandle
    ComponentSystemBase.SystemHandleUntyped
    ComponentSystemBase.Time
    ComponentSystemBase.WorldUpdateAllocator
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: Unity.NetCode
    Syntax
    [WorldSystemFilter(WorldSystemFilterFlags.BakingSystem | WorldSystemFilterFlags.ServerSimulation | WorldSystemFilterFlags.ClientSimulation | WorldSystemFilterFlags.ThinClientSimulation, WorldSystemFilterFlags.Default)]
    [CreateAfter(typeof(GhostComponentSerializerCollectionSystemGroup))]
    [CreateBefore(typeof(DefaultVariantSystemGroup))]
    [UpdateInGroup(typeof(DefaultVariantSystemGroup))]
    public abstract class DefaultVariantSystemBase : SystemBase
    Remarks

    You may have multiple derived systems. They'll all be read from, and conflicts will output errors at bake time, and the latest values will be used.

    Methods

    RegisterDefaultVariants(Dictionary<ComponentType, DefaultVariantSystemBase.Rule>)

    Implement this method by adding to the mapping your default type->variant DefaultVariantSystemBase.Rule

    Declaration
    protected abstract void RegisterDefaultVariants(Dictionary<ComponentType, DefaultVariantSystemBase.Rule> defaultVariants)
    Parameters
    Type Name Description
    Dictionary<ComponentType, DefaultVariantSystemBase.Rule> defaultVariants
    In This Article
    • Methods
      • RegisterDefaultVariants(Dictionary<ComponentType, DefaultVariantSystemBase.Rule>)
    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