Photon Fusion 2.0.3

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

Static Public Member Functions

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

Public Attributes

NetworkObjectFlags Flags
 Flags used for network object prefabs and similar More...
 
bool ForceRemoteRenderTimeframe = false
 Force the RenderTimeframe used to RenderTimeframe.Remote More...
 
bool IsResume
 Signal that this NetworkObject comes from a Resume Spawn More...
 
NetworkObject[] NestedObjects
 Array of initial child nested NetworkObject entities, that are children of this Object. More...
 
NetworkBehaviour[] NetworkedBehaviours
 Array of all NetworkBehaviours associated with this network entity. More...
 
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. More...
 
PriorityLevelDelegate PriorityCallback
 Delegate callback used to override priority value for a specific object-player pair More...
 
ReplicateToDelegate ReplicateTo
 Delegate callback used to override if an object should be replicate to a client or not More...
 
uint SortKey
 Used for whenever objects need to be sorted in a deterministic order, like when registering scene objects. More...
 

Protected Member Functions

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

Properties

bool HasInputAuthority [get]
 Returns if Simulation.LocalPlayer is the designated Input Source for this network entity. More...
 
bool HasStateAuthority [get]
 Returns if Simulation.LocalPlayer is the designated State Source for this network entity. More...
 
NetworkIdId [get]
 The unique identifier for this network entity. More...
 
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. More...
 
bool IsInSimulation [get]
 If this object is inserted into the simulation More...
 
bool IsNested [get]
 Returns true if this object is nested in a prefab instance. More...
 
bool IsProxy [get]
 Returns if Simulation.LocalPlayer is neither the Input nor State Source for this network entity. More...
 
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. More...
 
bool IsValid [get]
 Returns if this network entity is associated with its NetworkRunner, and that runner is not null. More...
 
Tick LastReceiveTick [get]
 Last tick this object received an update. More...
 
string Name [get]
 The ID + Unity GameObject name for this entity. More...
 
NetworkObject NestingRoot [get]
 Returns root of this prefab instance, if this object is nested. More...
 
RenderSource RenderSource [get, set]
 Returns the Fusion.RenderSource for this Fusion.NetworkBehaviour instance, indicating how snapshot data will be used to render it. More...
 
float RenderTime [get]
 Returns the current interpolation time for this object More...
 
RenderTimeframe?? RenderTimeframe [get]
 Returns the Fusion.RenderTimeframe for this Fusion.NetworkBehaviour instance, indicating what snapshot data will be used to render it. More...
 
NetworkRunner Runner [get]
 The NetworkRunner this entity is associated with. More...
 
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. More...
 

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

◆ AssignInputAuthority()

void AssignInputAuthority ( PlayerRef  player)

Sets which PlayerRef has Input Authority for this Object.

◆ Awake()

virtual void Awake ( )
protectedvirtual

Awake is called when the script instance is being loaded.

◆ 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

◆ GetLocalAuthorityMask()

int GetLocalAuthorityMask ( )

Gets a bitmask of AuthorityMasks flags, representing the current local authority over this NetworkObject.

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

◆ OnDestroy()

virtual void OnDestroy ( )
protectedvirtual

OnDestroy is called when the script instance is being 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.

◆ ReleaseStateAuthority()

void ReleaseStateAuthority ( )

Release the state authority over this NetworkObject on shared mode.

◆ RemoveInputAuthority()

void RemoveInputAuthority ( )

Removes input authority from whichever player has it for this object. Only valid when called on a Host or Server peer.

◆ 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.

◆ RequestStateAuthority()

void RequestStateAuthority ( )

Request state authority over this NetworkObject on shared mode.

◆ 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

Member Data Documentation

◆ Flags

Flags used for network object prefabs and similar

◆ ForceRemoteRenderTimeframe

bool ForceRemoteRenderTimeframe = false

◆ IsResume

bool IsResume

Signal that this NetworkObject comes from a Resume Spawn

◆ NestedObjects

NetworkObject [] NestedObjects

Array of initial child nested NetworkObject entities, that are children of this Object.

◆ NetworkedBehaviours

NetworkBehaviour [] NetworkedBehaviours

Array of all NetworkBehaviours associated with this network entity.

◆ NetworkTypeId

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.

◆ PriorityCallback

PriorityLevelDelegate PriorityCallback

Delegate callback used to override priority value for a specific object-player pair

◆ ReplicateTo

ReplicateToDelegate ReplicateTo

Delegate callback used to override if an object should be replicate to a client or not

◆ SortKey

uint SortKey

Used for whenever objects need to be sorted in a deterministic order, like when registering scene objects.

Property Documentation

◆ HasInputAuthority

bool HasInputAuthority
get

Returns if Simulation.LocalPlayer is the designated Input Source for this network entity.

◆ HasStateAuthority

bool HasStateAuthority
get

Returns if Simulation.LocalPlayer is the designated State Source for this network entity.

◆ Id

NetworkId? Id
get

The unique identifier for this network entity.

◆ InputAuthority

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.

◆ IsInSimulation

bool IsInSimulation
get

If this object is inserted into the simulation

◆ IsNested

bool IsNested
get

Returns true if this object is nested in a prefab instance.

◆ IsProxy

bool IsProxy
get

Returns if Simulation.LocalPlayer is neither the Input nor State Source for this network entity.

◆ IsSpawnable

bool IsSpawnable
getset

Toggles if this NetworkObject is included in the NetworkProjectConfig.PrefabTable, which will include the prefab in builds as a Spawnable object.

◆ IsValid

bool IsValid
get

Returns if this network entity is associated with its NetworkRunner, and that runner is not null.

◆ LastReceiveTick

Tick LastReceiveTick
get

Last tick this object received an update.

◆ Name

string Name
get

The ID + Unity GameObject name for this entity.

◆ NestingRoot

NetworkObject NestingRoot
get

Returns root of this prefab instance, if this object is nested.

◆ RenderSource

Returns the Fusion.RenderSource for this Fusion.NetworkBehaviour instance, indicating how snapshot data will be used to render it.

◆ RenderTime

float RenderTime
get

Returns the current interpolation time for this object

◆ RenderTimeframe

Returns the Fusion.RenderTimeframe for this Fusion.NetworkBehaviour instance, indicating what snapshot data will be used to render it.

◆ Runner

NetworkRunner Runner
get

The NetworkRunner this entity is associated with.

◆ StateAuthority

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.