Skip to main content

Unity.Netcode.NetworkBehaviour

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

Inheritance#

System.Dynamic.ExpandoObject

System.Dynamic.ExpandoObject

Namespace: System.Dynamic.ExpandoObject#
Assembly: MLAPI.dll#
Syntax#
public abstract class NetworkBehaviour : MonoBehaviour

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#

Gets if the object is the the personal clients player object

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 TODO: this needs an overhaul. It's expensive, it's ja little naive in how it looks for networkObject in its parent and worst, it creates a puzzle if you are a NetworkBehaviour wanting to see if you're live or not (e.g. editor code). All you want to do is find out if NetworkManager is null, but to do that you need NetworkObject, but if you try and grab NetworkObject and NetworkManager isn't up you'll get the warning below. This is why IsBehaviourEditable had to be created. Matt was going to re-do how NetworkObject works but it was close to the release and too risky to change

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

#

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

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
NetworkObjectparentNetworkObject

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