docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class ComponentController

    Handles enabling or disabling commonly used components like MonoBehaviour, MeshRenderer, Collider, etc.
    Anything that derives from Component and has an enabled property can be added to the list of objects.
    NOTE: NetworkBehaviour derived components are not allowed and will be automatically removed.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    NetworkBehaviour
    ComponentController
    Inherited Members
    NetworkBehaviour.NetworkManager
    NetworkBehaviour.RpcTarget
    NetworkBehaviour.IsLocalPlayer
    NetworkBehaviour.IsOwner
    NetworkBehaviour.IsServer
    NetworkBehaviour.HasAuthority
    NetworkBehaviour.IsSessionOwner
    NetworkBehaviour.ServerIsHost
    NetworkBehaviour.IsClient
    NetworkBehaviour.IsHost
    NetworkBehaviour.IsOwnedByServer
    NetworkBehaviour.IsSpawned
    NetworkBehaviour.NetworkObject
    NetworkBehaviour.HasNetworkObject
    NetworkBehaviour.NetworkObjectId
    NetworkBehaviour.NetworkBehaviourId
    NetworkBehaviour.GetNetworkBehaviour(ushort)
    NetworkBehaviour.OwnerClientId
    NetworkBehaviour.OnDeferringDespawn(int)
    NetworkBehaviour.OnNetworkPreSpawn(ref NetworkManager)
    NetworkBehaviour.InternalOnNetworkPostSpawn()
    NetworkBehaviour.OnNetworkSessionSynchronized()
    NetworkBehaviour.InternalOnNetworkSessionSynchronized()
    NetworkBehaviour.OnInSceneObjectsSpawned()
    NetworkBehaviour.OnNetworkDespawn()
    NetworkBehaviour.OnNetworkPreDespawn()
    NetworkBehaviour.OnGainedOwnership()
    NetworkBehaviour.OnOwnershipChanged(ulong, ulong)
    NetworkBehaviour.OnLostOwnership()
    NetworkBehaviour.OnNetworkObjectParentChanged(NetworkObject)
    NetworkBehaviour.GetNetworkObject(ulong)
    NetworkBehaviour.OnReanticipate(double)
    NetworkBehaviour.m_TargetIdBeingSynchronized
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(string, float)
    MonoBehaviour.InvokeRepeating(string, float, float)
    MonoBehaviour.CancelInvoke(string)
    MonoBehaviour.IsInvoking(string)
    MonoBehaviour.StartCoroutine(string)
    MonoBehaviour.StartCoroutine(string, object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StartCoroutine_Auto(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(string)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(object)
    MonoBehaviour.destroyCancellationToken
    MonoBehaviour.useGUILayout
    MonoBehaviour.didStart
    MonoBehaviour.didAwake
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, out Component)
    Component.TryGetComponent<T>(out T)
    Component.GetComponent(string)
    Component.GetComponentInChildren(Type, bool)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(bool)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, bool)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(bool)
    Component.GetComponentsInChildren<T>(bool, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, bool)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>(bool)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, bool)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(bool)
    Component.GetComponentsInParent<T>(bool, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.GetComponentIndex()
    Component.CompareTag(string)
    Component.CompareTag(TagHandle)
    Component.SendMessageUpwards(string, object, SendMessageOptions)
    Component.SendMessageUpwards(string, object)
    Component.SendMessageUpwards(string)
    Component.SendMessageUpwards(string, SendMessageOptions)
    Component.SendMessage(string, object)
    Component.SendMessage(string)
    Component.SendMessage(string, object, SendMessageOptions)
    Component.SendMessage(string, SendMessageOptions)
    Component.BroadcastMessage(string, object, SendMessageOptions)
    Component.BroadcastMessage(string, object)
    Component.BroadcastMessage(string)
    Component.BroadcastMessage(string, SendMessageOptions)
    Component.transform
    Component.gameObject
    Component.tag
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.InstantiateAsync<T>(T)
    Object.InstantiateAsync<T>(T, Transform)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int)
    Object.InstantiateAsync<T>(T, int, Transform)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, CancellationToken)
    Object.InstantiateAsync<T>(T, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion, InstantiateParameters, CancellationToken)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, InstantiateParameters, CancellationToken)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Scene)
    Object.Instantiate<T>(T, InstantiateParameters)
    Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Unity.Netcode.Components
    Assembly: Unity.Netcode.Runtime.dll
    Syntax
    public class ComponentController : NetworkBehaviour
    Remarks

    This will synchronize the enabled or disabled state of the Components with connected and late joining clients.

    • Use EnabledState to determine the current synchronized enabled state.
    • Use SetEnabled(bool) to change the enabled state and have the change applied to all components this ComponentController is synchronizing.
      It is encouraged to create custom derived versions of this class to provide any additional functionality required for your project specific needs.

    Fields

    StartEnabled

    Determines whether the selected Componentss will start enabled or disabled when spawned.

    Declaration
    [Tooltip("The initial state of the component controllers enabled status when instantiated.")]
    public bool StartEnabled
    Field Value
    Type Description
    bool

    Properties

    EnabledState

    Returns the current enabled state of the ComponentController.

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

    Methods

    OnAwake()

    Override this method in place of Awake. This method is invoked during Awake.

    Declaration
    protected virtual void OnAwake()
    Remarks

    The ComponentController's Awake method is protected to assure it is invoked in the correct order.

    OnDestroy()

    Invoked when the GameObject the NetworkBehaviour is attached to is destroyed. If you override this, you must always invoke the base class version of this OnDestroy() method.

    Declaration
    public override void OnDestroy()
    Overrides
    NetworkBehaviour.OnDestroy()
    Remarks

    If overriding this method, it is required that you invoke this base method.

    OnHasAuthority()

    Override this method to change how the instance determines the authority.
    The default is to use the HasAuthority method.

    Declaration
    protected virtual bool OnHasAuthority()
    Returns
    Type Description
    bool

    true = has authoriy | false = does not have authority

    Remarks

    Useful when using a ClientServer network topology and you would like to have the owner be the authority of this ComponentController instance.

    OnNetworkPostSpawn()

    Gets called after the NetworkObject is spawned. All NetworkBehaviours associated with the NetworkObject will have had OnNetworkSpawn() invoked.

    Declaration
    protected override void OnNetworkPostSpawn()
    Overrides
    NetworkBehaviour.OnNetworkPostSpawn()
    Remarks

    Will be invoked on each NetworkBehaviour associated with the NetworkObject being spawned. All associated NetworkBehaviour components will have had OnNetworkSpawn() invoked on the spawned NetworkObject.

    OnNetworkSpawn()

    Gets called when the NetworkObject gets spawned, message handlers are ready to be registered, and the network is set up.

    Declaration
    public override void OnNetworkSpawn()
    Overrides
    NetworkBehaviour.OnNetworkSpawn()
    Remarks

    If overriding this method, it is required that you invoke this base method.

    OnSynchronize<T>(ref BufferSerializer<T>)

    Override this method if your derived NetworkBehaviour requires custom synchronization data. Use of this method is only for the initial client synchronization of NetworkBehaviours and will increase the payload size for client synchronization and dynamically spawned NetworkObjects.

    Declaration
    protected override void OnSynchronize<T>(ref BufferSerializer<T> serializer) where T : IReaderWriter
    Parameters
    Type Name Description
    BufferSerializer<T> serializer

    The serializer to use to read and write the data.

    Type Parameters
    Name Description
    T

    Either BufferSerializerReader or BufferSerializerWriter, depending whether the serializer is in read mode or write mode.

    Overrides
    NetworkBehaviour.OnSynchronize<T>(ref BufferSerializer<T>)
    Remarks

    When serializing (writing), this method is invoked during the client synchronization period and when spawning new NetworkObjects. When deserializing (reading), this method is invoked prior to the NetworkBehaviour's associated NetworkObject being spawned.

    OnValidate()

    Declaration
    protected virtual void OnValidate()
    Remarks

    Checks for invalid Object entries.

    SetEnabled(bool)

    Invoke on the authority side to enable or disable components assigned to this instance.

    Declaration
    public void SetEnabled(bool isEnabled)
    Parameters
    Type Name Description
    bool isEnabled

    true = enabled | false = disabled

    Remarks

    If any component entry has the ComponentControllerEntry.InvertEnabled set to true, then the inverse of the isEnabled property passed in will be used. If the component entry has the ComponentControllerEntry.InvertEnabled set to false (default), then the value of the isEnabled property will be applied.

    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)