Skip to main content

Class NetworkBehaviour

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

Inheritance

System.Object

NetworkBehaviour

Namespace: Unity.Netcode
Assembly: MLAPI.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
TypeDescription
System.Boolean

IsClient

Gets if we are executing as client

Declaration
protected bool IsClient { get; }
Property Value
TypeDescription
System.Boolean

IsHost

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

Declaration
protected bool IsHost { get; }
Property Value
TypeDescription
System.Boolean

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
TypeDescription
System.Boolean

IsOwnedByServer

Gets Whether or not the object has a owner

Declaration
public bool IsOwnedByServer { get; }
Property Value
TypeDescription
System.Boolean

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
TypeDescription
System.Boolean

IsServer

Gets if we are executing as server

Declaration
protected bool IsServer { get; }
Property Value
TypeDescription
System.Boolean

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
TypeDescription
System.Boolean

NetworkBehaviourId

Gets NetworkId for this NetworkBehaviour from the owner NetworkObject

Declaration
public ushort NetworkBehaviourId { get; }
Property Value
TypeDescription
System.UInt16

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
TypeDescription
NetworkManager

NetworkObject

Gets the NetworkObject that owns this NetworkBehaviour instance.

Declaration
public NetworkObject NetworkObject { get; }
Property Value
TypeDescription
NetworkObject

NetworkObjectId

Gets the NetworkId of the NetworkObject that owns this NetworkBehaviour

Declaration
public ulong NetworkObjectId { get; }
Property Value
TypeDescription
System.UInt64

OwnerClientId

Gets the ClientId that owns the NetworkObject

Declaration
public ulong OwnerClientId { get; }
Property Value
TypeDescription
System.UInt64

Methods

GetNetworkBehaviour(UInt16)

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

Declaration
protected NetworkBehaviour GetNetworkBehaviour(ushort behaviourId)
Parameters
TypeNameDescription
System.UInt16behaviourIdThe behaviourId to return
Returns
TypeDescription
NetworkBehaviourReturns NetworkBehaviour with given behaviourId

GetNetworkObject(UInt64)

Gets the local instance of a object with a given NetworkId

Declaration
protected NetworkObject GetNetworkObject(ulong networkId)
Parameters
TypeNameDescription
System.UInt64networkId
Returns
TypeDescription
NetworkObject

OnDestroy()

Invoked when the 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
TypeNameDescription
NetworkObjectparentNetworkObjectthe 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()