Photon Fusion 2.0.0

Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Properties | List of all members
NetworkObject Class Reference

The primary Fusion component for networked GameObject entities. This stores the object's network identity and manages the object's state and input authority. More...

Inherits Behaviour.

Public Member Functions

void AssignInputAuthority (PlayerRef player)
 Sets which PlayerRef has Input Authority for this Object.
 
void CopyStateFrom (NetworkObject source)
 Copies the entire State from another NetworkObject
 
void CopyStateFrom (NetworkObjectHeaderPtr source)
 Copies the entire State from another NetworkObject based on the NetworkObjectHeaderPtr
 
int GetLocalAuthorityMask ()
 Gets a bitmask of AuthorityMasks flags, representing the current local authority over this NetworkObject.
 
delegate PriorityLevel PriorityLevelDelegate (NetworkObject networkObject, PlayerRef player)
 Delegate for determining the priority level of a network object for a specific player.
 
void ReleaseStateAuthority ()
 Release the state authority over this NetworkObject on shared mode.
 
void RemoveInputAuthority ()
 Removes input authority from whichever player has it for this object. Only valid when called on a Host or Server peer.
 
delegate bool ReplicateToDelegate (NetworkObject networkObject, PlayerRef player)
 Delegate for determining if a network object should be replicated to a specific player.
 
void RequestStateAuthority ()
 Request state authority over this NetworkObject on shared mode.
 
void SetPlayerAlwaysInterested (PlayerRef player, bool alwaysInterested)
 Add or remove specific player interest in this NetworkObject. Only the NetworkObject State Authority can set interest.
 
- Public Member Functions inherited from Behaviour
AddBehaviour< T > ()
 Wrapper for Unity's GameObject.AddComponent()
 
GetBehaviour< T > ()
 Wrapper for Unity's GameObject.GetComponentInChildren()
 
bool TryGetBehaviour< T > (out T behaviour)
 Wrapper for Unity's GameObject.TryGetComponent()
 

Static Public Member Functions

static int GetWordCount (NetworkObject obj)
 Calculates the total word count for a given NetworkObject.
 
static void NetworkUnwrap (NetworkRunner runner, NetworkId wrapper, ref NetworkObject result)
 Return the NetworkObject reference on result that matches the provided NetworkId
 
static NetworkId NetworkWrap (NetworkObject obj)
 Return the obj NetworkId.
 
static NetworkId NetworkWrap (NetworkRunner runner, NetworkObject obj)
 Return the obj NetworkId.
 
static implicit operator NetworkId (NetworkObject obj)
 Converts the Network Object to it's NetworkId.
 
- Static Public Member Functions inherited from Behaviour
static void DestroyBehaviour (Behaviour behaviour)
 Wrapper for Unity's GameObject.Destroy()
 

Public Attributes

NetworkObjectFlags Flags
 Flags used for network object prefabs and similar.
 
bool IsResume
 Signal that this NetworkObject comes from a Resume Spawn.
 
NetworkObject[] NestedObjects
 Array of initial child nested NetworkObject entities, that are children of this Object.
 
NetworkBehaviour[] NetworkedBehaviours
 Array of all NetworkBehaviours associated with this network entity.
 
NetworkObjectTypeId NetworkTypeId
 The type ID for this prefab or scene object, set when adding to the prefab table and registering scene objects, respectively. All spawned instances of this object will retain this value. Use NetworkId for the unique ID of network entries.
 
PriorityLevelDelegate PriorityCallback
 Delegate callback used to override priority value for a specific object-player pair.
 
ReplicateToDelegate ReplicateTo
 Delegate callback used to override if an object should be replicate to a client or not.
 
uint SortKey
 Used for whenever objects need to be sorted in a deterministic order, like when registering scene objects.
 

Protected Member Functions

virtual void Awake ()
 Awake is called when the script instance is being loaded.
 
virtual void OnDestroy ()
 OnDestroy is called when the script instance is being destroyed.
 

Properties

bool HasInputAuthority [get]
 Returns if Simulation.LocalPlayer is the designated Input Source for this network entity.
 
bool HasStateAuthority [get]
 Returns if Simulation.LocalPlayer is the designated State Source for this network entity.
 
NetworkId Id [get]
 The unique identifier for this network entity.
 
PlayerRef InputAuthority [get]
 Returns the PlayerRef that has Input Authority over this network entity. PlayerRefs are assigned in order from 0 to MaxPlayers-1 and are re-used as players join and leave. The only caveat is that the server player (if one exists), always gets the last index no matter how many clients are connected.
 
bool IsInSimulation [get]
 If this object is inserted into the simulation.
 
bool IsProxy [get]
 Returns if Simulation.LocalPlayer is neither the Input nor State Source for this network entity.
 
bool IsSpawnable [get, set]
 Toggles if this NetworkObject is included in the NetworkProjectConfig.PrefabTable, which will include the prefab in builds as a Spawnable object.
 
bool IsValid [get]
 Returns if this network entity is associated with its NetworkRunner, and that runner is not null.
 
Tick LastReceiveTick [get]
 Last tick this object received an update.
 
string Name [get]
 The ID + Unity GameObject name for this entity.
 
RenderSource RenderSource [get, set]
 Returns the Fusion.RenderSource for this Fusion.NetworkBehaviour instance, indicating how snapshot data will be used to render it.
 
float RenderTime [get]
 Returns the current interpolation time for this object.
 
RenderTimeframe RenderTimeframe [get]
 Returns the Fusion.RenderTimeframe for this Fusion.NetworkBehaviour instance, indicating what snapshot data will be used to render it.
 
NetworkRunner Runner [get]
 The NetworkRunner this entity is associated with.
 
PlayerRef StateAuthority [get]
 Returns the PlayerRef that has State Authority over this network entity. PlayerRefs are assigned in order from 0 to MaxPlayers-1 and are re-used as players join and leave. The only caveat is that the server player (if one exists), always gets the last index no matter how many clients are connected.
 

Detailed Description

The primary Fusion component for networked GameObject entities. This stores the object's network identity and manages the object's state and input authority.

Member Function Documentation

◆ CopyStateFrom() [1/2]

void CopyStateFrom ( NetworkObject  source)

Copies the entire State from another NetworkObject

Parameters
sourceNetworkObject to copy the State from

◆ CopyStateFrom() [2/2]

void CopyStateFrom ( NetworkObjectHeaderPtr  source)

Copies the entire State from another NetworkObject based on the NetworkObjectHeaderPtr

Parameters
sourceNetworkObjectHeaderPtr to copy the state from

◆ GetWordCount()

static int GetWordCount ( NetworkObject  obj)
static

Calculates the total word count for a given NetworkObject.

Parameters
objThe NetworkObject for which the word count is to be calculated.
Returns
The total word count of the NetworkObject. Returns 0 if the NetworkObject is not alive.
Exceptions
System.ExceptionThrown when a NetworkBehaviour reference is missing in the NetworkBehaviour array of the NetworkObject.

◆ NetworkUnwrap()

static void NetworkUnwrap ( NetworkRunner  runner,
NetworkId  wrapper,
ref NetworkObject  result 
)
static

Return the NetworkObject reference on result that matches the provided NetworkId

Parameters
runnerThe NetworkRunner that will be used to try to find a NetworkObject with ID equals to wrapper
wrapperThe NetworkId to be searched
resultThe found NetworkObject. null if the provided NetworkId is not valid

◆ NetworkWrap() [1/2]

static NetworkId NetworkWrap ( NetworkObject  obj)
static

Return the obj NetworkId.

Parameters
objThe NetworkObject to get the ID from
Returns
The NetworkId of the object. Default if the object is not alive (null or destroyed)

◆ NetworkWrap() [2/2]

static NetworkId NetworkWrap ( NetworkRunner  runner,
NetworkObject  obj 
)
static

Return the obj NetworkId.

Parameters
runnerThe NetworkRunner that obj is assigned to
objThe NetworkObject to get the ID from
Returns
The NetworkId of the object. Default if the object is not alive (null or destroyed)

◆ operator NetworkId()

static implicit operator NetworkId ( NetworkObject  obj)
static

Converts the Network Object to it's NetworkId.

Parameters
objThe object to convert
Returns
The NetworkId of the object. Default if the object is not alive (null or destroyed)

◆ PriorityLevelDelegate()

delegate PriorityLevel PriorityLevelDelegate ( NetworkObject  networkObject,
PlayerRef  player 
)

Delegate for determining the priority level of a network object for a specific player.

Parameters
networkObjectThe network object in question.
playerThe player for whom the priority level is being determined.
Returns
The priority level of the network object for the player.

◆ ReplicateToDelegate()

delegate bool ReplicateToDelegate ( NetworkObject  networkObject,
PlayerRef  player 
)

Delegate for determining if a network object should be replicated to a specific player.

Parameters
networkObjectThe network object in question.
playerThe player to potentially replicate to.
Returns
True if the object should be replicated to the player, false otherwise.

◆ SetPlayerAlwaysInterested()

void SetPlayerAlwaysInterested ( PlayerRef  player,
bool  alwaysInterested 
)

Add or remove specific player interest in this NetworkObject. Only the NetworkObject State Authority can set interest.

Parameters
playerThe player to set interest for
alwaysInterestedIf the player should always be interested in this object