docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class NetworkBehaviour

    The base class to override to write network code. Inherits MonoBehaviour

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    NetworkBehaviour
    NetworkAnimator
    NetworkRigidbody
    NetworkRigidbody2D
    NetworkTransform
    NetworkBehaviourTests.EmptyNetworkBehaviour
    NetworkObjectTests.EmptyNetworkBehaviour
    NetworkVarTests.NetworkVarComponent
    AddNetworkPrefabTest.EmptyComponent
    BufferDataValidationComponent
    DeferredMessageTestNetworkVariableComponent
    DeferredMessageTestRpcAndNetworkVariableComponent
    DeferredMessageTestRpcComponent
    DisconnectReasonObject
    ExampleTestComponent
    HiddenVariableObject
    HiddenVariableTest
    ListChangedObject
    NetVarContainer
    NetVarILPPClassForTests
    NetVarPermTestComp
    NetvarDespawnShutdown
    NetworkBehaviourGenericTests.SimpleNetworkBehaviour
    NetworkBehaviourOnSynchronizeComponent
    NetworkBehaviourSynchronizeFailureComponent
    NetworkBehaviourWithNetVarArray
    NetworkBehaviourWithNetworkVariables
    NetworkBehaviourWithOwnerNetworkVariables
    NetworkListChangedTestComponent
    NetworkObjectOwnershipComponent
    NetworkObjectSpawnManyObjectsTests.SpawnObjecTrackingComponent
    NetworkTransformAnticipationComponent
    NetworkTransformOwnershipTests.VerifyObjectIsSpawnedOnClient
    NetworkVarBufferCopyTest.DummyNetBehaviour
    NetworkVariableAnticipationComponent
    NetworkVariableInheritanceTests.ComponentA
    NetworkVariableTest
    NetworkVariableTraitsComponent
    NetworkVisibilityComponent
    NonWorkingUserNetworkVariableComponent
    OwnerModifiedObject
    OwnerPermissionObject
    RpcManyClientsObject
    RpcTests.CompileTimeNoRpcsBaseClassTest
    RpcTests.GenericRpcTestNB<T>
    RpcTypeSerializationTests.RpcTestNB
    ShowHideObject
    SpawnTest
    TemplateNetworkBehaviourType<T>
    UniversalRpcNetworkBehaviour
    WorkingUserNetworkVariableComponentBase
    RpcTestComponent
    ObjectNameIdentifier
    Inherited Members
    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.useGUILayout
    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.CompareTag(string)
    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.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    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
    Assembly: Unity.Netcode.Runtime.dll
    Syntax
    public abstract class NetworkBehaviour : MonoBehaviour

    Properties

    HasNetworkObject

    Gets whether or not this NetworkBehaviour instance has a NetworkObject owner.

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

    IsClient

    Gets if we are executing as client

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

    IsHost

    Gets if we are executing as Host, I.E Server and Client

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

    IsLocalPlayer

    If a NetworkObject is assigned, it will return whether or not this NetworkObject is the local player object. If no NetworkObject is assigned it will always return false.

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

    IsOwnedByServer

    Gets Whether or not the object has a owner

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

    IsOwner

    Gets if the object is owned by the local player or if the object is the local player object

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

    IsServer

    Gets if we are executing as server

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

    IsSpawned

    Used to determine if it is safe to access NetworkObject and NetworkManager from within a NetworkBehaviour component Primarily useful when checking NetworkObject/NetworkManager properties within FixedUpate

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

    NetworkBehaviourId

    Gets NetworkId for this NetworkBehaviour from the owner NetworkObject

    Declaration
    public ushort NetworkBehaviourId { get; }
    Property Value
    Type Description
    ushort

    NetworkManager

    Gets the NetworkManager that owns this NetworkBehaviour instance See note around NetworkObject for how there is a chicken / egg problem when we are not initialized

    Declaration
    public NetworkManager NetworkManager { get; }
    Property Value
    Type Description
    NetworkManager

    NetworkObject

    Gets the NetworkObject that owns this NetworkBehaviour instance

    Declaration
    public NetworkObject NetworkObject { get; }
    Property Value
    Type Description
    NetworkObject

    NetworkObjectId

    Gets the NetworkId of the NetworkObject that owns this NetworkBehaviour

    Declaration
    public ulong NetworkObjectId { get; }
    Property Value
    Type Description
    ulong

    OwnerClientId

    Gets the ClientId that owns the NetworkObject

    Declaration
    public ulong OwnerClientId { get; }
    Property Value
    Type Description
    ulong

    RpcTarget

    Provides access to the various SendTo targets at runtime, as well as runtime-bound targets like Single(ulong, RpcTargetUse), Unity.Netcode.RpcTarget.Group(NativeArray<ulong>), Unity.Netcode.RpcTarget.Group(NativeList<ulong>), Unity.Netcode.RpcTarget.Group(ulong[]), Unity.Netcode.RpcTarget.Group<T>(T), Unity.Netcode.RpcTarget.Not(ulong), Unity.Netcode.RpcTarget.Not(NativeArray<ulong>), Unity.Netcode.RpcTarget.Not(NativeList<ulong>), Unity.Netcode.RpcTarget.Not(ulong[]), and Unity.Netcode.RpcTarget.Not<T>(T)

    Declaration
    public RpcTarget RpcTarget { get; }
    Property Value
    Type Description
    RpcTarget

    ServerIsHost

    Gets if the server (local or remote) is a host - i.e., also a client

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

    m_TargetIdBeingSynchronized

    The relative client identifier targeted for the serialization of this NetworkBehaviour instance.

    Declaration
    protected ulong m_TargetIdBeingSynchronized { get; }
    Property Value
    Type Description
    ulong
    Remarks

    This value will be set prior to OnSynchronize<T>(ref BufferSerializer<T>) being invoked. For writing (server-side), this is useful to know which client will receive the serialized data. For reading (client-side), this will be the LocalClientId. When synchronization of this instance is complete, this value will be reset to 0

    Methods

    GetNetworkBehaviour(ushort)

    Returns a the NetworkBehaviour with a given BehaviourId for the current NetworkObject

    Declaration
    protected NetworkBehaviour GetNetworkBehaviour(ushort behaviourId)
    Parameters
    Type Name Description
    ushort behaviourId

    The behaviourId to return

    Returns
    Type Description
    NetworkBehaviour

    Returns NetworkBehaviour with given behaviourId

    GetNetworkObject(ulong)

    Gets the local instance of a object with a given NetworkId

    Declaration
    protected NetworkObject GetNetworkObject(ulong networkId)
    Parameters
    Type Name Description
    ulong networkId
    Returns
    Type Description
    NetworkObject

    OnDestroy()

    Invoked when the GameObject the NetworkBehaviour is attached to. NOTE: If you override this, you will want to always invoke this base class version of this OnDestroy() method!!

    Declaration
    public virtual void OnDestroy()

    OnGainedOwnership()

    Gets called when the local client gains ownership of this object

    Declaration
    public virtual void OnGainedOwnership()

    OnLostOwnership()

    Gets called when we loose ownership of this object

    Declaration
    public virtual void OnLostOwnership()

    OnNetworkDespawn()

    Gets called when the NetworkObject gets despawned. Is called both on the server and clients.

    Declaration
    public virtual void OnNetworkDespawn()

    OnNetworkObjectParentChanged(NetworkObject)

    Gets called when the parent NetworkObject of this NetworkBehaviour's NetworkObject has changed

    Declaration
    public virtual void OnNetworkObjectParentChanged(NetworkObject parentNetworkObject)
    Parameters
    Type Name Description
    NetworkObject parentNetworkObject

    the new NetworkObject parent

    OnNetworkSpawn()

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

    Declaration
    public virtual void OnNetworkSpawn()

    OnOwnershipChanged(ulong, ulong)

    Invoked on all clients, override this method to be notified of any ownership changes (even if the instance was niether the previous or newly assigned current owner).

    Declaration
    protected virtual void OnOwnershipChanged(ulong previous, ulong current)
    Parameters
    Type Name Description
    ulong previous

    the previous owner

    ulong current

    the current owner

    OnReanticipate(double)

    Declaration
    public virtual void OnReanticipate(double lastRoundTripTime)
    Parameters
    Type Name Description
    double lastRoundTripTime

    OnSynchronize<T>(ref BufferSerializer<T>)

    Override this method if your derived NetworkBehaviour requires custom synchronization data. Note: 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 virtual 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.

    Remarks

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

    In This Article
    • Properties
      • HasNetworkObject
      • IsClient
      • IsHost
      • IsLocalPlayer
      • IsOwnedByServer
      • IsOwner
      • IsServer
      • IsSpawned
      • NetworkBehaviourId
      • NetworkManager
      • NetworkObject
      • NetworkObjectId
      • OwnerClientId
      • RpcTarget
      • ServerIsHost
      • m_TargetIdBeingSynchronized
    • Methods
      • GetNetworkBehaviour(ushort)
      • GetNetworkObject(ulong)
      • OnDestroy()
      • OnGainedOwnership()
      • OnLostOwnership()
      • OnNetworkDespawn()
      • OnNetworkObjectParentChanged(NetworkObject)
      • OnNetworkSpawn()
      • OnOwnershipChanged(ulong, ulong)
      • OnReanticipate(double)
      • OnSynchronize<T>(ref BufferSerializer<T>)
    Back to top
    Copyright © 2024 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)