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()