Photon Fusion 2.0.4

Public Member Functions | Public Attributes | Properties | List of all members
NetworkTransform Class Reference

Add to any NetworkObject Transform, or its associated child Transforms to automatically synchronize TRSP (Position/Rotation/Scale/Parent). More...

Inherits NetworkTRSP, INetworkTRSPTeleport, IBeforeAllTicks, IAfterAllTicks, and IBeforeCopyPreviousState.

Public Member Functions

override void Render ()
 Post simulation frame rendering callback. Runs after all simulations have finished. Use in place of Unity's Update when Fusion is handling Physics.
 
override void SetAreaOfInterestOverride (NetworkObject obj)
 Manually set the NetworkObject used as the AreaOfInterestOverride. More...
 
override void Spawned ()
 Post spawn callback.
 
void Teleport (Vector3? position=null, Quaternion? rotation=null)
 Set the transform position and rotation to the indicated values, and network the Teleport event. This will suspend interpolation between the previous tick state and the current tick state in Render(), on this peer and all remote peers. More...
 
- Public Member Functions inherited from NetworkBehaviour
virtual void CopyBackingFieldsToState (bool firstTime)
 Copies the backing fields to the state. This method is meant to be overridden in derived classes. More...
 
void CopyStateFrom (NetworkBehaviour source)
 Copies entire state of passed in source NetworkBehaviour More...
 
virtual void CopyStateToBackingFields ()
 Copies the state to the backing fields. This method is meant to be overridden in derived classes. More...
 
virtual void Despawned (NetworkRunner runner, bool hasState)
 Called before the network object is despawned More...
 
override void FixedUpdateNetwork ()
 Fixed update callback for networked behaviours. More...
 
ArrayReader< T > GetArrayReader< T > (string property)
 Gets an ArrayReader for a network array of type T. More...
 
BehaviourReader< T > GetBehaviourReader< T > (string property)
 Gets a BehaviourReader for a network behaviour of type T. More...
 
ChangeDetector GetChangeDetector (ChangeDetector.Source source, bool copyInitial=true)
 Creates a ChangeDetector for this network behaviour. More...
 
DictionaryReader< K, V > GetDictionaryReader< K, V > (string property)
 Gets a DictionaryReader for a network dictionary with keys of type K and values of type V. More...
 
T? GetInput< T > ()
 
bool GetInput< T > (out T input)
 Returns true if it a valid INetworkInput can be found for the current simulation tick (Typically this is used in FixedUpdateNetwork). More...
 
LinkListReader< T > GetLinkListReader< T > (string property)
 Gets a LinkListReader for a network linked list of type T. More...
 
int GetLocalAuthorityMask ()
 Gets a bitmask of AuthorityMasks flags, representing the current local authority over this NetworkObject. More...
 
PropertyReader< T > GetPropertyReader< T > (string property)
 Gets a PropertyReader for a property of type T in this network behaviour. More...
 
ref T ReinterpretState< T > (int offset=0)
 Allows read and write access to the internal state buffer More...
 
void ReplicateTo (PlayerRef player, bool replicate)
 Controls if this network behaviours state is replicated to a player or not More...
 
void ReplicateToAll (bool replicate)
 Sets the default replicated state for this behaviour, this by default is true so calling ReplicateToAll(true) does nothing if ReplicateToAll(false) hasn't been called before
More...
 
void ResetState ()
 Resets the state of the object to the original state More...
 
bool TryGetSnapshotsBuffers (out NetworkBehaviourBuffer from, out NetworkBehaviourBuffer to, out float alpha)
 Tries to get the snapshot buffers for this network behaviour. 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...
 
- Public Member Functions inherited from IElementReaderWriter< NetworkObject >
int GetElementHashCode (T element)
 Calculate the hash code of an element. More...
 
int GetElementWordCount ()
 Gets the word count of an element. More...
 
Read (byte *data, int index)
 Reads an element from the specified index in the byte array. More...
 
ref T ReadRef (byte *data, int index)
 Reads a reference to an element from the specified index in the byte array. More...
 
void Write (byte *data, int index, T element)
 Writes an element to the specified index in the byte array. More...
 
- Public Member Functions inherited from IElementReaderWriter< NetworkBehaviour >
int GetElementHashCode (T element)
 Calculate the hash code of an element. More...
 
int GetElementWordCount ()
 Gets the word count of an element. More...
 
Read (byte *data, int index)
 Reads an element from the specified index in the byte array. More...
 
ref T ReadRef (byte *data, int index)
 Reads a reference to an element from the specified index in the byte array. More...
 
void Write (byte *data, int index, T element)
 Writes an element to the specified index in the byte array. More...
 

Public Attributes

bool DisableSharedModeInterpolation = false
 Disable interpolation on State Authority in Shared Mode. You should disable interpolation if your controller code moves an object inside of Update() rather than FixedUpdateNetwork(). More...
 
bool SyncParent = false
 Enables synchronization of transform.parent. NOTE: Parent GameObjects must have a NetworkBehaviour derived component to be a valid parent, parent must belong to a different NetworkObject than this Object. More...
 
bool SyncScale = false
 Enables synchronization of LocalScale. More...
 
- Public Attributes inherited from NetworkBehaviour
int offset
 Gives access to the offset (in 32 bit words) and count (in 32 bit words) of this behaviour backing data More...
 

Properties

bool AutoUpdateAreaOfInterestOverride [get, set]
 Determines if parent changes should automatically call SetAreaOfInterestOverride(NetworkObject), and assign the parent NetworkObject as the override. Default is true, as you typically will want player interest in this object to reflect player interest in the nested parent object. For example, if a player is carrying an nested Object, players should only see that carried Object if they see the player. Additionally, AOI works in world space, and NetworkTransform operates in local space, so any AOI position values of nested Objects will ALWAYS be invalid, so nested Objects should always have their AOI Override set to a non-nested Object. More...
 
- Properties inherited from NetworkTRSP
NetworkTRSPData Data [get]
 The networked data of this NetworkTRSP. More...
 
bool IsMainTRSP [get]
 The main NetworkTRSP is at the root of the NetworkObject and it will be used for area of interest operations and parenting of the NetworkObject. More...
 
ref NetworkTRSPData State [get]
 A reference to the networked data of this NetworkTRSP. More...
 
- Properties inherited from NetworkBehaviour
Tick ChangedTick [get]
 The tick the data on this networked behaviour changed More...
 
virtual ? int DynamicWordCount [get]
 Override this value for custom memory allocations. This is for advanced use cases only, and cannot be used if NetworkedAttribute is used in the derived class.
More...
 
bool? HasInputAuthority [get]
 Returns true if the Simulation.LocalPlayer of the associated NetworkRunner is the designated as Input Source for this network entity. More...
 
bool? HasStateAuthority [get]
 Returns true if the associated NetworkRunner is the State Source for this network entity. More...
 
NetworkBehaviourIdId [get]
 The unique identifier for this network behaviour. More...
 
bool? IsProxy [get]
 Returns true if the associated NetworkRunner is neither the Input nor State Authority for this network entity. It is recommended to use !HasStateAuthority or !HasInputAuthority when possible instead, as this check requires evaluating both authorities - and is therefore less performant than the individual checks. More...
 
NetworkBehaviourBuffer StateBuffer [get]
 Gets the state buffer associated with the network behaviour. More...
 
bool StateBufferIsValid [get]
 Gets a value indicating whether the state buffer is valid. More...
 
- Properties inherited from SimulationBehaviour
bool CanReceiveRenderCallback [get]
 Gets a value indicating whether this instance can receive render callbacks. More...
 
bool CanReceiveSimulationCallback [get]
 Gets a value indicating whether this instance can receive simulation callbacks. More...
 
NetworkObject Object [get]
 The NetworkObject this component is associated with. More...
 
NetworkRunner Runner [get]
 The NetworkRunner this component is associated with. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from NetworkBehaviour
static ArrayReader< T > GetArrayReader< T > (Type behaviourType, string property, IElementReaderWriter< T > readerWriter=null)
 Gets an ArrayReader for a network array of type T in a network behaviour of a specific type. More...
 
static BehaviourReader< T > GetBehaviourReader< T > (NetworkRunner runner, Type behaviourType, string property)
 Gets a BehaviourReader for a network behaviour of type T. More...
 
static BehaviourReader< TProperty > GetBehaviourReader< TBehaviour, TProperty > (NetworkRunner runner, string property)
 Gets a BehaviourReader for a network behaviour with a specific property of type TProperty. More...
 
static DictionaryReader< K, V > GetDictionaryReader< K, V > (Type behaviourType, string property, IElementReaderWriter< K > keyReaderWriter=null, IElementReaderWriter< V > valueReaderWriter=null)
 Gets a DictionaryReader for a network dictionary with keys of type K and values of type V in a network behaviour of a specific type. More...
 
static LinkListReader< T > GetLinkListReader< T > (Type behaviourType, string property, IElementReaderWriter< T > readerWriter=null)
 Gets a LinkListReader for a network linked list of type T in a network behaviour of a specific type. More...
 
static PropertyReader< T > GetPropertyReader< T > (Type behaviourType, string property)
 Gets a PropertyReader for a property of type T in a network behaviour of a specific type. More...
 
static PropertyReader< TProperty > GetPropertyReader< TBehaviour, TProperty > (string property)
 Gets a PropertyReader for a property of type TProperty in a network behaviour of type TBehaviour. More...
 
static NetworkBehaviourUtils.DictionaryInitializer< K, V > MakeInitializer< K, V > (Dictionary< K, V > dictionary)
 This is a special method that is meant to be used only for [Networked] properties inline initialization. More...
 
static NetworkBehaviourUtils.ArrayInitializer< T > MakeInitializer< T > (T[] array)
 This is a special method that is meant to be used only for [Networked] properties inline initialization. More...
 
static T * MakePtr< T > ()
 Creates a pointer to a value of type T. This method is meant to be used only for [Networked] properties inline initialization. More...
 
static T * MakePtr< T > (T defaultValue)
 Creates a pointer to a value of type T, initializing it with the provided default value. This method is meant to be used only for [Networked] properties inline initialization. More...
 
static ref T MakeRef< T > ()
 Creates a reference to a value of type T. This method is meant to be used only for [Networked] properties inline initialization. More...
 
static ref T MakeRef< T > (T defaultValue)
 Creates a reference to a value of type T, initializing it with the provided default value. This method is meant to be used only for [Networked] properties inline initialization. More...
 
static int NetworkDeserialize (NetworkRunner runner, byte *data, ref NetworkBehaviour result)
 Deserializes a NetworkBehaviour from a byte array. More...
 
static int NetworkSerialize (NetworkRunner runner, NetworkBehaviour obj, byte *data)
 Serializes a NetworkBehaviour into a byte array. More...
 
static NetworkBehaviour NetworkUnwrap (NetworkRunner runner, NetworkBehaviourId wrapper)
 Converts a NetworkBehaviourId to a NetworkBehaviour. More...
 
static NetworkBehaviourId NetworkWrap (NetworkBehaviour obj)
 Converts a NetworkBehaviour to a NetworkBehaviourId. More...
 
static NetworkBehaviourId NetworkWrap (NetworkRunner runner, NetworkBehaviour obj)
 Converts a NetworkBehaviour to a NetworkBehaviourId. More...
 
static implicit operator NetworkBehaviourId (NetworkBehaviour behaviour)
 Converts NetworkBehaviour to NetworkBehaviourId More...
 
- Static Public Member Functions inherited from Behaviour
static void DestroyBehaviour (Behaviour behaviour)
 Wrapper for Unity's GameObject.Destroy() More...
 
- Protected Member Functions inherited from NetworkBehaviour
virtual bool ReplicateTo (PlayerRef player)
 Determines whether to replicate the network behaviour to the specified player. This method can be overridden in derived classes to implement custom replication logic. More...
 
- Static Protected Member Functions inherited from NetworkTRSP
static void Render (NetworkTRSP behaviour, Transform transform, bool syncScale, bool syncParent, bool local, ref Tick initial)
 Default Render handling for NetworkTRSP derived classes. More...
 
static void ResolveAOIOverride (NetworkTRSP behaviour, Transform parent)
 Recursively attempts to find nested parent NetworkObject, and if found assigns that NetworkObject as the AreaOfInterestOverride. More...
 
static void SetParentTransform (NetworkTRSP behaviour, Transform transform, NetworkBehaviourId parentId)
 Default handling for setting a NetworkTRSP's parent using a NetworkBehaviourId value. More...
 
static void Teleport (NetworkTRSP behaviour, Transform transform, Vector3? position=null, Quaternion? rotation=null)
 The default Teleport implementation for NetworkTRSP derived classes. More...
 
- Protected Attributes inherited from NetworkTRSP
Tick reenabledTick
 The tick on which this NetworkTRSP was last re-enabled (right after Spawned doesn't count). More...
 

Detailed Description

Add to any NetworkObject Transform, or its associated child Transforms to automatically synchronize TRSP (Position/Rotation/Scale/Parent).

Member Function Documentation

◆ SetAreaOfInterestOverride()

override void SetAreaOfInterestOverride ( NetworkObject  obj)
virtual

Manually set the NetworkObject used as the AreaOfInterestOverride.

Parameters
objNetworkObject to use as the AreaOfInterestOverride.

Reimplemented from NetworkTRSP.

◆ Teleport()

void Teleport ( Vector3?  position = null,
Quaternion?  rotation = null 
)

Set the transform position and rotation to the indicated values, and network the Teleport event. This will suspend interpolation between the previous tick state and the current tick state in Render(), on this peer and all remote peers.

Implements INetworkTRSPTeleport.

Member Data Documentation

◆ DisableSharedModeInterpolation

bool DisableSharedModeInterpolation = false

Disable interpolation on State Authority in Shared Mode. You should disable interpolation if your controller code moves an object inside of Update() rather than FixedUpdateNetwork().

◆ SyncParent

bool SyncParent = false

Enables synchronization of transform.parent. NOTE: Parent GameObjects must have a NetworkBehaviour derived component to be a valid parent, parent must belong to a different NetworkObject than this Object.

◆ SyncScale

bool SyncScale = false

Enables synchronization of LocalScale.

Property Documentation

◆ AutoUpdateAreaOfInterestOverride

bool AutoUpdateAreaOfInterestOverride
getset

Determines if parent changes should automatically call SetAreaOfInterestOverride(NetworkObject), and assign the parent NetworkObject as the override. Default is true, as you typically will want player interest in this object to reflect player interest in the nested parent object. For example, if a player is carrying an nested Object, players should only see that carried Object if they see the player. Additionally, AOI works in world space, and NetworkTransform operates in local space, so any AOI position values of nested Objects will ALWAYS be invalid, so nested Objects should always have their AOI Override set to a non-nested Object.