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.
Inherited Members
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
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
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
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
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.