Photon Fusion 1.1.12

Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Properties | List of all members
NetworkRigidbodyBase Class Referenceabstract

Base class for 2D and 3D networked rigid body behaviours: see NetworkRigidbody2D and NetworkRigidbody, respectively. This class handles some of the data and logic shared between the two versions. More...

Inherits IStateAuthorityChanged, and NetworkTransform.

Inherited by NetworkRigidbody, and NetworkRigidbody2D.

Public Types

enum class  NetworkRigidbodyFlags : byte
 Networked flags representing a 2D or 3D rigid body state and characteristics. More...
 
- Public Types inherited from NetworkBehaviour
enum class  InterpolationDataSources
 Options for which time frame this object will render in. More...
 

Public Member Functions

override void AfterAllTicks (bool resimulation, int tickCount)
 Implements IAfterAllTicks. If overriding this method in an inheritor, the base method should be called. To extend the functionality of copying data from the engine to the networked buffer, override and extend NetworkPositionRotation.CopyFromEngineToBuffer instead. More...
 
override void BeforeAllTicks (bool resimulation, int tickCount)
 Implements IBeforeAllTicks. If overriding this method in an inheritor, the base method should be called. To extend the functionality of copying data from the networked buffer to the engine, override and extend NetworkPositionRotation.CopyFromBufferToEngine instead. More...
 
override void BeforeCopyPreviousState ()
 Implements IBeforeCopyPreviousState. If overriding this method in an inheritor, the base method should be called. More...
 
override void CopyBackingFieldsToState (bool firstTime)
 Implements NetworkBehaviour.CopyBackingFieldsToState. If overriding this method in an inheritor, the base method should be called. More...
 
override bool IsInterpolationDataPredicted ()
 If the behaviour data should be interpolated between latest predicted states or between snapshots.
 
float ReadAngularDrag ()
 Reads from the field reserved to store the rigidbody angular drag on this object's networked data using the default Runner position read accuracy. More...
 
float ReadAngularDrag (int *ptr)
 Reads from the field reserved to store the rigidbody angular drag on the networked data pointed by ptr using the default Runner position read accuracy. More...
 
float ReadDrag ()
 Reads from the field reserved to store the rigidbody drag on this object's networked data using the default Runner position read accuracy. More...
 
float ReadDrag (int *ptr)
 Reads from the field reserved to store the rigidbody drag on the networked data pointed by ptr using the default Runner position read accuracy. More...
 
float ReadMass ()
 Reads from the field reserved to store the rigidbody mass on this object's networked data using the default Runner position read accuracy. More...
 
float ReadMass (int *ptr)
 Reads from the field reserved to store the rigidbody mass on the networked data pointed by ptr using the default Runner position read accuracy. More...
 
NetworkRigidbodyFlags ReadNetworkRigidbodyFlags ()
 Reads from the field reserved to store the rigidbody flags on this object's networked data. More...
 
override void RemotePrefabCreated ()
 Implements IRemotePrefabCreated. If overriding this method in an inheritor, the base method should be called. More...
 
virtual void StateAuthorityChanged ()
 Implements IStateAuthorityChanged. If overriding this method in an inheritor, the base method should be called. More...
 
void WriteAngularDrag (float angDrag)
 Writes the field reserved to store the rigidbody angular drag on this object's networked data using the default Runner position write accuracy. More...
 
void WriteAngularDrag (float angDrag, int *ptr)
 Writes to the field reserved to store the rigidbody angular drag on the networked data pointed by ptr using the default Runner position write accuracy. More...
 
void WriteDrag (float drag)
 Writes the field reserved to store the rigidbody drag on this object's networked data using the default Runner position write accuracy. More...
 
void WriteDrag (float drag, int *ptr)
 Writes to the field reserved to store the rigidbody drag on the networked data pointed by ptr using the default Runner position write accuracy. More...
 
void WriteMass (float mass)
 Writes the field reserved to store the rigidbody mass on this object's networked data using the default Runner position write accuracy. More...
 
void WriteMass (float mass, int *ptr)
 Writes to the field reserved to store the rigidbody mass on the networked data pointed by ptr using the default Runner position write accuracy. More...
 
void WriteNetworkRigidbodyFlags (NetworkRigidbodyFlags flags)
 Writes to the field reserved to store the rigidbody flags on this object's networked data. More...
 
- Public Member Functions inherited from NetworkTransform
override void AfterAllTicks (bool resimulation, int tickCount)
 Implements IAfterAllTicks. If overriding this method in an inheritor, the base method should be called. To extend the functionality of copying data from the engine to the networked buffer, override and extend CopyFromEngineToBuffer instead.
 
void AfterTick ()
 Implements IAfterTick. If overriding this method in an inheritor, the base method should be called. More...
 
override void BeforeUpdate ()
 Overrides NetworkPositionRotation.BeforeUpdate. If overriding this method in an inheritor, the base method should be called. More...
 
override void CopyBackingFieldsToState (bool firstTime)
 Implements NetworkBehaviour.CopyBackingFieldsToState. If overriding this method in an inheritor, the base method should be called.
 
override void Despawned (NetworkRunner runner, bool hasState)
 Called before the network object is despawned More...
 
void PredictedSpawnCacheTransformState ()
 If this object is a predicted spawn, caches the current transform state for interpolated rendering and prediction error correction. More...
 
virtual void PredictedSpawnFailed ()
 Implements IPredictedSpawnBehaviour.PredictedSpawnFailed and does nothing by default. More...
 
virtual void PredictedSpawnRender ()
 Implements IPredictedSpawnBehaviour.PredictedSpawnSpawned. If overriding this method in an inheritor, the base method should be called. More...
 
virtual void PredictedSpawnSpawned ()
 Implements IPredictedSpawnBehaviour.PredictedSpawnSpawned. If overriding this method in an inheritor, the base method should be called. More...
 
virtual void PredictedSpawnSuccess ()
 Implements IPredictedSpawnBehaviour.PredictedSpawnSuccess and does nothing by default. More...
 
virtual void PredictedSpawnUpdate ()
 Implements IPredictedSpawnBehaviour.PredictedSpawnUpdate and, by default, calls PredictedSpawnCacheTransformState. Behaviours that change the Transform state of this predict-spawned object should either be ordered before NetworkTransform or call PredictedSpawnCacheTransformState after doing so. If overriding this method in an inheritor, the base method should be called. More...
 
Vector3 ReadTeleportInterpolationAngularVelocity ()
 Reads from this object's networked data field holding the interpolation angular velocity (used on position teleports) using the default Runner position read accuracy. See TeleportToRotation for more information on how this value is used. More...
 
Vector3 ReadTeleportInterpolationAngularVelocity (int *ptr)
 Reads from a field holding the interpolation angular velocity (used on position teleports) from the networked data pointed by ptr using the default Runner position read accuracy. See TeleportToRotation for more information on how this value is used. More...
 
Vector3 ReadTeleportInterpolationVelocity ()
 Reads from this object's networked data field holding the interpolation velocity (used on position teleports) using the default Runner position read accuracy. See TeleportToPosition for more information on how this value is used. More...
 
Vector3 ReadTeleportInterpolationVelocity (int *ptr)
 Reads from a field holding the interpolation velocity (used on position teleports) from the networked data pointed by ptr using the default Runner position read accuracy. See TeleportToPosition for more information on how this value is used. More...
 
bool ReadTeleportPositionInterpolateBackwards ()
 Reads from this object's field holding information about the last TeleportToPosition call and if should be interpolated forward (emulated To based on From state + interpolation) or backwards (Emulated From based on To state - interpolation). More...
 
int ReadTeleportPositionTick ()
 Reads from this object's field holding the tick number where TeleportToPosition was last called. More...
 
bool ReadTeleportRotationInterpolateBackwards ()
 Reads from this object's field holding information about the last TeleportToRotation call and if should be interpolated forward (emulated To based on From state + interpolation) or backwards (Emulated From based on To state - interpolation). More...
 
int ReadTeleportRotationTick ()
 Reads from this object's field holding the tick number where TeleportToRotation was last called. More...
 
override void Render ()
 Overrides SimulationBehaviour.Render, computing the interpolated position and rotation values according to the NetworkBehaviour.InterpolationDataSource, updating the prediction error correction and calling ApplyInterpolatedTransform to apply the results to the InterpolationTarget. More...
 
override void Spawned ()
 Overrides NetworkBehaviour.Spawned. If overriding this method in an inheritor, the base method should be called. More...
 
void TeleportToPosition (Vector3 position, Vector3? interpolationVel=null, bool interpolateBackwards=true)
 Teleports the object to the provided position while making the networked state aware that the object was teleported and the view interpolation needs special handling. The position is immediately set to the transform's position field and additional data is stored in order to interpolate the view object between the ticks. While interpolating the visual representation of the networked object TO a tick where a teleport happened, the object's latest state (tick when the teleport is performed) will not be used, as doing so would cause the interpolation target to visually interpolate along the teleported distance. Instead, the view will be interpolated between the FROM state (tick before the teleport) and an artificial position computed based on this FROM state and an interpolation velocity (see interpolationVel ), in order to emulate how the object would behave if the teleport had not been performed. More...
 
void TeleportToPositionRotation (Vector3 position, Quaternion rotation, Vector3? interpolationVel=null, Vector3? interpolationAngularVel=null, bool interpolateBackwards=true)
 Teleports the object to the provided position and rotation while making the networked state aware that the object was teleported and the view interpolation needs special handling. The rotation is immediately set to the transform's rotation field and additional data is stored in order to interpolate the view object between the ticks. See TeleportToPosition and TeleportToRotation for more details about why and how the special interpolation handling is performed. More...
 
void TeleportToRotation (Quaternion rotation, Vector3? interpolationAngularVel=null, bool interpolateBackwards=true)
 Teleports the object to the provided rotation while making the networked state aware that the object was teleported and the view interpolation needs special handling. The rotation is immediately set to the transform's rotation field and additional data is stored in order to interpolate the view object between the ticks. While interpolating the visual representation of the networked object TO a tick where a teleport happened, the object's latest state (tick when the teleport is performed) will not be used, as doing so would cause the interpolation target to visually interpolate along the teleported rotation. Instead, the view will be interpolated between the FROM state (tick before the teleport) and an artificial rotation computed based on this FROM state and an interpolation angular velocity (see interpolationAngularVel ), in order to emulate how the object would behave if the teleport had not been performed. More...
 
void WriteTeleportInterpolationAngularVelocity (Vector3 angularVel)
 Writes to this object's networked data field holding the interpolation angular velocity (used on position teleports) using the default Runner position write accuracy. See TeleportToRotation for more information on how this value is used. More...
 
void WriteTeleportInterpolationAngularVelocity (Vector3 angularVel, int *ptr)
 Writes to a field holding the interpolation angular velocity (used on position teleports) on the networked data pointed by ptr using the default Runner position write accuracy. See TeleportToRotation for more information on how this value is used. More...
 
void WriteTeleportInterpolationVelocity (Vector3 velocity)
 Writes to this object's networked data field holding the interpolation velocity (used on position teleports) using the default Runner position write accuracy. See TeleportToPosition for more information on how this value is used. More...
 
void WriteTeleportInterpolationVelocity (Vector3 velocity, int *ptr)
 Writes to a field holding the interpolation velocity (used on position teleports) on the networked data pointed by ptr using the default Runner position write accuracy. See TeleportToPosition for more information on how this value is used. More...
 
void WriteTeleportPositionInterpolateBackwards (bool backwards)
 Writes to this object's field holding information about the last TeleportToPosition call and if should be interpolated forward (emulated To based on From state + interpolation) or backwards (Emulated From based on To state - interpolation). More...
 
void WriteTeleportPositionTick (int tick)
 Writes this object's field holding the tick number where TeleportToPosition was last called. More...
 
void WriteTeleportRotationInterpolateBackwards (bool backwards)
 Writes to this object's field holding information about the last TeleportToRotation call and if should be interpolated forward (emulated To based on From state + interpolation) or backwards (Emulated From based on To state - interpolation). More...
 
void WriteTeleportRotationTick (int tick)
 Writes this object's field holding the tick number where TeleportToRotation was last called. More...
 
- Public Member Functions inherited from NetworkPositionRotation
Quaternion ReadRotation ()
 Reads from the rotation field on this object's networked data with the default Runner position read accuracy. More...
 
Quaternion ReadRotation (int *ptr)
 Reads from a rotation field on the networked data pointed by ptr with the default Runner position read accuracy. More...
 
void WriteRotation (Quaternion rotation)
 Writes to a rotation field on this object's networked data with the default Runner position write accuracy. More...
 
void WriteRotation (Quaternion rotation, int *ptr)
 Writes to a rotation field on the networked data pointed by ptr with the default Runner position write accuracy. More...
 
- Public Member Functions inherited from NetworkPosition
void AfterHostMigration ()
 Invoked after the Host Migration happens in order to setup non-networked data on NetworkBehaviors
 
Vector3 ReadPosition ()
 Reads from the position field on this object's networked data with the default Runner position read accuracy. More...
 
Vector3 ReadPosition (int *ptr)
 Reads from a position field on the networked data pointed by ptr with the default Runner position read accuracy. More...
 
void WritePosition (Vector3 position)
 Writes to a position field on this object's networked data with the default Runner position write accuracy. More...
 
void WritePosition (Vector3 position, int *ptr)
 Writes to a position field on the networked data pointed by ptr with the default Runner position write accuracy. More...
 
- Public Member Functions inherited from NetworkBehaviour
void CopyStateFrom (NetworkBehaviour source)
 Copies entire state of passed in source NetworkBehaviour More...
 
virtual void CopyStateToBackingFields ()
 
override void FixedUpdateNetwork ()
 Fusion FixedUpdate timing callback. 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...
 
bool GetInterpolationData (out InterpolationData data, bool? predicted=null)
 Get 'To' and 'From' states, and the Alpha (t) values needed for lerping. More...
 
bool GetInterpolationData (out InterpolationData data, out bool predicted)
 Get 'To' and 'From' states, and the Alpha (t) values needed for interpolation. More...
 
RawInterpolator GetInterpolator (string propertyName)
 Get a raw interpolator for a networked property. The returned RawInterpolator provides a way to calculate the "between-ticks" value of the named [Networked] property. More...
 
Interpolator< T > GetInterpolator< T > (string propertyName)
 Get an interpolator for a networked property. The returned Interpolator provides a way to calculate the "between-ticks" value of the named [Networked] property with the specified type T. The value is a linear interpolation between the "from" and the "to" ticks and is available via the Value property on the Interpolator. More...
 
int GetLocalAuthorityMask ()
 Gets a bitmask of AuthorityMasks flags, representing the current local authority over this NetworkObject. More...
 
delegate int[] InterestGroupsCallback (Type type, NetworkBehaviour behaviour)
 
NetworkBehaviourCallbackReference OnChangeAdd< T > (int wordOffset, int wordCount, ChangedDelegate< T > callback, OnChangedTargets targets=OnChangedTargets.All)
 Adds a OnChange callback to this behaviour which is bound to a specific word offset and word count More...
 
NetworkBehaviourCallbackReference OnChangeAdd< T > (string propertyName, ChangedDelegate< T > callback, OnChangedTargets targetses=OnChangedTargets.All)
 Adds a OnChange callback to this behaviour which is bound to a specific weaved property More...
 
void OnChangeClearAll ()
 Clear all dynamic OnChange callbacks from this behaviour More...
 
bool OnChangeRemove (NetworkBehaviourCallbackReference reference)
 Removes a specific OnChange callback from this 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...
 

Static Public Member Functions

static float ReadAngularDrag (int *ptr, ReadAccuracy readAccuracy)
 Reads from the field reserved to store the rigidbody angular drag on the networked data pointed by ptr using the defined readAccuracy . More...
 
static float ReadDrag (int *ptr, ReadAccuracy readAccuracy)
 Reads from the field reserved to store the rigidbody drag on the networked data pointed by ptr using the defined readAccuracy . More...
 
static float ReadMass (int *ptr, ReadAccuracy readAccuracy)
 Reads from the field reserved to store the rigidbody mass on the networked data pointed by ptr using the defined readAccuracy . More...
 
static NetworkRigidbodyFlags ReadNetworkRigidbodyFlags (int *ptr)
 Reads from the field reserved to store the rigidbody flags on the networked data pointed by ptr . More...
 
static void WriteAngularDrag (float angDrag, int *ptr, WriteAccuracy writeAccuracy)
 Writes to the field reserved to store the rigidbody angular drag on the networked data pointed by ptr using the defined writeAccuracy . More...
 
static void WriteDrag (float drag, int *ptr, WriteAccuracy writeAccuracy)
 Writes to the field reserved to store the rigidbody drag on the networked data pointed by ptr using the defined writeAccuracy . More...
 
static void WriteMass (float mass, int *ptr, WriteAccuracy writeAccuracy)
 Writes to the field reserved to store the rigidbody mass on the networked data pointed by ptr using the defined writeAccuracy . More...
 
static void WriteNetworkRigidbodyFlags (NetworkRigidbodyFlags flags, int *ptr)
 Reads from the field reserved to store the rigidbody flags on the networked data pointed by ptr . More...
 
- Static Public Member Functions inherited from NetworkTransform
static Vector3 ReadTeleportInterpolationAngularVelocity (int *ptr, ReadAccuracy readAccuracy)
 Reads from a field holding the interpolation angular velocity (used on position teleports) on the networked data pointed by ptr with the defined readAccuracy . See TeleportToRotation for more information on how this value is used. More...
 
static Vector3 ReadTeleportInterpolationVelocity (int *ptr, ReadAccuracy readAccuracy)
 Reads from a field holding the interpolation velocity (used on position teleports) from the networked data pointed by ptr with the defined readAccuracy . See TeleportToPosition for more information on how this value is used. More...
 
static bool ReadTeleportPositionInterpolateBackwards (int *ptr)
 Reads from the networked data pointer by ptr a field holding information about the last TeleportToPosition call and if should be interpolated forward (emulated To based on From state + interpolation) or backwards (Emulated From based on To state - interpolation). More...
 
static int ReadTeleportPositionTick (int *ptr)
 Reads from the networked data pointer by ptr a field holding the tick number where TeleportToPosition was last called. More...
 
static bool ReadTeleportRotationInterpolateBackwards (int *ptr)
 Reads from the networked data pointer by ptr a field holding information about the last TeleportToRotation call and if should be interpolated forward (emulated To based on From state + interpolation) or backwards (Emulated From based on To state - interpolation). More...
 
static int ReadTeleportRotationTick (int *ptr)
 Reads from the networked data pointer by ptr a field holding the tick number where TeleportToRotation was last called. More...
 
static void WriteTeleportInterpolationAngularVelocity (Vector3 angularVel, int *ptr, WriteAccuracy writeAccuracy)
 Writes to a field holding the interpolation angular velocity (used on position teleports) from the networked data pointed by ptr with the defined writeAccuracy . See TeleportToRotation for more information on how this value is used. More...
 
static void WriteTeleportInterpolationVelocity (Vector3 velocity, int *ptr, WriteAccuracy writeAccuracy)
 Writes to a field holding the interpolation velocity (used on position teleports) from the networked data pointed by ptr with the defined writeAccuracy . See TeleportToPosition for more information on how this value is used. More...
 
static void WriteTeleportPositionInterpolateBackwards (int *ptr, bool backwards)
 Writes the networked data pointer by ptr , on a field holding information about the last TeleportToPosition call and if should be interpolated forward (emulated To based on From state + interpolation) or backwards (Emulated From based on To state - interpolation). More...
 
static void WriteTeleportPositionTick (int tick, int *ptr)
 Writes to the networked data pointer by ptr a field holding the tick number where TeleportToPosition was last called. More...
 
static void WriteTeleportRotationInterpolateBackwards (int *ptr, bool backwards)
 Writes to this object's field holding information about the last TeleportToRotation call and if should be interpolated forward (emulated To based on From state + interpolation) or backwards (Emulated From based on To state - interpolation). More...
 
static void WriteTeleportRotationTick (int tick, int *ptr)
 Writes to the networked data pointer by ptr a field holding the tick number where TeleportToRotation was last called. More...
 
- Static Public Member Functions inherited from NetworkPositionRotation
static Quaternion ReadRotation (int *ptr, ReadAccuracy readAccuracy)
 Reads from a rotation field on the networked data pointed by ptr with the defined readAccuracy . More...
 
static void WriteRotation (Quaternion rotation, int *ptr, WriteAccuracy writeAccuracy)
 Writes to a rotation field on the networked data pointed by ptr with the defined writeAccuracy . More...
 
- Static Public Member Functions inherited from NetworkPosition
static Vector3 ReadPosition (int *ptr, ReadAccuracy readAccuracy)
 Reads from a position field on the networked data pointed by ptr with the defined readAccuracy . More...
 
static void WritePosition (Vector3 position, int *ptr, WriteAccuracy writeAccuracy)
 Writes to a position field on the networked data pointed by ptr with the defined writeAccuracy . More...
 
- Static Public Member Functions inherited from NetworkBehaviour
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 > ()
 
static T * MakePtr< T > (T defaultValue)
 
static ref T MakeRef< T > ()
 
static ref T MakeRef< T > (T defaultValue)
 
static int NetworkDeserialize (NetworkRunner runner, byte *data, ref NetworkBehaviour result)
 
static int NetworkSerialize (NetworkRunner runner, NetworkBehaviour obj, byte *data)
 
static NetworkBehaviour NetworkUnwrap (NetworkRunner runner, NetworkBehaviourId wrapper)
 
static NetworkBehaviourId NetworkWrap (NetworkRunner runner, NetworkBehaviour obj)
 
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

Vector3 ReadDragsAndMass ()
 Reads the values of a rigidbody drag, angular drag and mass field on this object's networked data using the default Runner position read accuracy. The values are returned as the x, y and z values of a Vector3, respectively. More...
 
Vector3 ReadDragsAndMass (int *ptr)
 Reads the values of a rigidbody drag, angular drag and mass field on the networked data pointed by ptr using the default Runner position read accuracy. The values are returned as the x, y and z values of a Vector3, respectively. More...
 
int ReadNetworkRigidbodyRawFlags ()
 Reads from the field reserved to store the rigid body flags on this object's networked data and returns the raw word value that might also carry flags specific to 2D or 3D rigid bodies. See also NetworkRigidbody.ReadNetworkRigidbodyFlags or NetworkRigidbody2D.ReadNetworkRigidbodyFlags. More...
 
abstract void SetCollisionDetectionMode (CollisionDetectionMode mode)
 Sets a 2D or 3D rigid body collision detection mode . More...
 
abstract void SetIsKinematic (bool value)
 Sets a 2D or 3D rigid body kinematic field to value , according to the explicit implementation. More...
 
void WriteDragsAndMass (Vector3 values)
 Writes the values of a rigidbody drag, angular drag and mass field on this object's networked data using the default Runner position read accuracy. The values must be provided as the x, y and z values of a Vector3, respectively. More...
 
void WriteDragsAndMass (Vector3 values, int *ptr)
 Reads the values of a rigidbody drag, angular drag and mass field on the networked data pointed by ptr using the default Runner position read accuracy. The values must be provided as the x, y and z values of a Vector3, respectively. More...
 
void WriteNetworkRigidbodyRawFlags (int rawFlags)
 Writes to the field reserved to store the on this object's networked data. See also NetworkRigidbody.ReadNetworkRigidbodyFlags or NetworkRigidbody2D.ReadNetworkRigidbodyFlags. More...
 
- Protected Member Functions inherited from NetworkTransform
virtual void ApplyInterpolatedTransform (ref InterpolatedTransformParameters param)
 Applies the interpolated position and rotation values and prediction error corrections computed on Render to the InterpolationTarget. More...
 
virtual void GetUninterpolatedWorldPositions (ref InterpolationData data, out Vector3 posFrom, out Vector3 posTo)
 Retrieves the world position values from the From and To states made available in the interpolation data , setting them to posFrom and posTo , respectively. More...
 
virtual void GetUninterpolatedWorldRotations (ref InterpolationData data, out Quaternion rotFrom, out Quaternion rotTo)
 Retrieves the world rotation values from the From and To states made available in the interpolation data , setting them to rotFrom and rotTo , respectively. More...
 
- Protected Member Functions inherited from NetworkPositionRotation
override void CopyFromBufferToEngine ()
 Sets the values retrieved from the networked data to the respective engine (Unity) fields. If overriding this method in an inheritor, the base method should be called. More...
 
override void CopyFromEngineToBuffer ()
 Sets the values retrieved from the engine (Unity) to the respective networked fields. If overriding this method in an inheritor, the base method should be called. More...
 
virtual Quaternion GetEngineRotation ()
 Gets the rotation value from the engine. By default, the world rotation is set to be the output. More...
 
virtual void SetEngineRotation (Quaternion rot)
 Sets a rotation value to the engine. By default, the value is set to the transform's world rotation field. More...
 
- Protected Member Functions inherited from NetworkPosition
virtual void Awake ()
 Implements Unity's Awake event function. If overriding this method in an inheritor, the base method should be called. More...
 
virtual Vector3 GetEnginePosition ()
 Gets the position value from the engine. By default, the world position is set to be the output. More...
 
virtual void OnEnable ()
 Implements Unity's OnEnable event function. If overriding this method in an inheritor, the base method should be called. More...
 
virtual void SetEnginePosition (Vector3 pos)
 Sets a position value to the engine. By default, the value is set to the transform's world position field. More...
 

Static Protected Member Functions

static Vector3 ReadDragsAndMass (int *ptr, ReadAccuracy readAccuracy)
 Reads the values of a rigidbody drag, angular drag and mass field on the networked data pointed by ptr using the defined readAccuracy . The values are returned as the x, y and z values of a Vector3, respectively. More...
 
static int ReadNetworkRigidbodyRawFlags (int *ptr)
 Reads from a field reserved to store the rigid body flags on the networked data pointed by ptr and returns the raw word value that might also carry flags specific to 2D or 3D rigid bodies. See also NetworkRigidbody.ReadNetworkRigidbodyFlags or NetworkRigidbody2D.ReadNetworkRigidbodyFlags. More...
 
static void WriteDragsAndMass (Vector3 values, int *ptr, WriteAccuracy writeAccuracy)
 Reads the values of a rigidbody drag, angular drag and mass field on the networked data pointed by ptr using the defined writeAccuracy . The values must be provided as the x, y and z values of a Vector3, respectively. More...
 
static void WriteNetworkRigidbodyRawFlags (int rawFlags, int *ptr)
 Writes to the field reserved to store the on this object's networked data. See also NetworkRigidbody.ReadNetworkRigidbodyFlags or NetworkRigidbody2D.ReadNetworkRigidbodyFlags. More...
 

Protected Attributes

bool _forceSnapshotInterpolated
 If the rigid body state is not predicted, but just interpolated between snapshots. More...
 
- Protected Attributes inherited from NetworkPosition
NetworkPosition parentNP = null
 

Static Protected Attributes

const int WORD_COUNT_NRBB = OFFSET_FLAGS + WORD_COUNT_FLAGS
 Number of words used by a NetworkRigidbodyBase instance on its networked data, including all inherited fields. More...
 
- Static Protected Attributes inherited from NetworkTransform
const int WORD_COUNT_NT = OFFSET_ROT_STOPPED_CHANGING_TICK + WORD_COUNT_ROT_STOPPED_CHANGING_TICK
 Number of words used by a NetworkTransform instance on its networked data, including all inherited fields. More...
 
- Static Protected Attributes inherited from NetworkPositionRotation
const int WORD_COUNT_NPR = OFFSET_ROTATION + WORD_COUNT_ROTATION
 Number of words used by a NetworkPositionRotation instance on its networked data, including all inherited fields. More...
 
- Static Protected Attributes inherited from NetworkPosition
const int WORD_COUNT_NPOS = OFFSET_POSITION + WORD_COUNT_POSITION
 Number of words used by a NetworkPosition instance on its networked data, including all inherited fields. More...
 

Properties

override int BaseWordCount [get]
 
- Properties inherited from NetworkTransform
override int BaseWordCount [get]
 
virtual Vector3 DefaultTeleportInterpolationAngularVelocity [get]
 The interpolation angular velocity used when calling TeleportToRotation and not specifying a value. By default, this value is Vector3.zero. Some behaviours like NetworkRigidbody and NetworkRigidbody2D override this property to provide better default values, like the latest known angular velocity of the rigid body. More...
 
virtual Vector3 DefaultTeleportInterpolationVelocity [get]
 The interpolation velocity used when calling TeleportToPosition and not specifying a value. By default, this value is Vector3.zero. Some behaviours like NetworkRigidbody and NetworkRigidbody2D override this property to provide better default values, like the latest known velocity of the rigid body. More...
 
- Properties inherited from NetworkPositionRotation
virtual int BaseWordCount [get]
 Number of words used by this class on the networked data buffer, including all inherited fields, to serve for reference to inheritors. More...
 
- Properties inherited from NetworkPosition
virtual int BaseWordCount [get]
 Number of words used by this class on the networked data buffer, including all inherited fields, to serve for reference to inheritors. More...
 
override int PositionWordOffset [get]
 Implements NetworkAreaOfInterestBehaviour by defining the word offset from the base pointer to the field that carries the position data used for Area of Interest management. More...
 
Transform Transform [get]
 Cached GameObject.transform reference. More...
 
- Properties inherited from NetworkAreaOfInterestBehaviour
abstract int PositionWordOffset [get]
 The int* offset for the Ptr, for the memory location of the position data. More...
 
- Properties inherited from NetworkBehaviour
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...
 
NetworkBehaviourId Id [get]
 The unique identifier for this network behaviour. More...
 
InterpolationDataSources InterpolationDataSource [get, set]
 Get/Set the time frame this object is rendered in. More...
 
virtual bool InvokeOnChangedForInitialNonZeroValues [get]
 Override this property to change whether initial non-zero values assigned to [Networked] properties invoke OnChanged callbacks. For clients the initial value comes from the simulation snapshot, not from what has been set locally in the inspector. More...
 
- Properties inherited from SimulationBehaviour
bool CanReceiveCallback [get]
 
virtual bool? HasInputAuthority [get]
 Returns true if the Simulation.LocalPlayer of the associated NetworkRunner is the designated as Input Authority for this network entity. More...
 
virtual bool? HasStateAuthority [get]
 Returns true if the associated NetworkRunner is the State Authority for this network entity. More...
 
virtual 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...
 

Additional Inherited Members

- Public Attributes inherited from NetworkTransform
InterpolatedErrorCorrectionSettings InterpolatedErrorCorrectionSettings
 A set of parameters to tune the interpolated correction of prediction error to be applied on the InterpolationTarget. More...
 
bool InterpolateErrorCorrection = true
 If the computed prediction error should be smoothly corrected on the InterpolationTarget according to the InterpolatedErrorCorrectionSettings. More...
 
Spaces InterpolationSpace = Spaces.World
 If the InterpolationTarget should be interpolated in world space or in the local space of a networked parent. Interpolating in local space requires more computations, but gives more accurate visuals if/when a parent rotates. More...
 
Transform InterpolationTarget
 The Transform object used for smooth view interpolation. Should be a non-physics GameObject, typically a child of this GameObject or a separate object without colliders. More...
 
float TargetInterpolationDelay = 0.030f
 In shared mode, how much behind (in seconds) the remote client's interpolated view will try to stay from the latest snapshot available. The smaller the value, the snappier the interpolation will be and the higher the changes of extrapolations and eventual error corrections (interpolated). More...
 
bool UseLegacySharedModeInterpolation = false
 If the legacy interpolation algorithm should be used in Shared Mode for this object. More...
 
- Public Attributes inherited from NetworkBehaviour
bool InvokeRpc
 
int ObjectIndex
 The index of this NetworkBehaviour, in the NetworkObject.NetworkedBehaviours array. More...
 
int offset
 Gives access to the offset (in 32 bit words) and count (in 32 bit words) of this behaviour backing data More...
 
int * Ptr
 Pointer to the allocated memory associated with this Object. More...
 
- Public Attributes inherited from SimulationBehaviour
NetworkObject Object
 The NetworkObject this component is associated with. May be null if this GameObject does not have a NetworkObject. More...
 
NetworkRunner Runner
 The NetworkRunner this component is associated with. More...
 

Detailed Description

Base class for 2D and 3D networked rigid body behaviours: see NetworkRigidbody2D and NetworkRigidbody, respectively. This class handles some of the data and logic shared between the two versions.

Member Enumeration Documentation

◆ NetworkRigidbodyFlags

enum NetworkRigidbodyFlags : byte
strong

Networked flags representing a 2D or 3D rigid body state and characteristics.

Enumerator
IsKinematic 

Networked kinematic state. See also Rigidbody.isKinematic or Rigidbody2D.isKinematic.

UseGravity 

Networked Rigidbody.useGravity state. Not used with 2D rigid bodies.

IsSleeping 

Networked sleeping state. See also Rigidbody.IsSleeping or Rigidbody2D.IsSleeping.

Member Function Documentation

◆ AfterAllTicks()

override void AfterAllTicks ( bool  resimulation,
int  tickCount 
)
virtual

Implements IAfterAllTicks. If overriding this method in an inheritor, the base method should be called. To extend the functionality of copying data from the engine to the networked buffer, override and extend NetworkPositionRotation.CopyFromEngineToBuffer instead.

Reimplemented from NetworkPosition.

◆ BeforeAllTicks()

override void BeforeAllTicks ( bool  resimulation,
int  tickCount 
)
virtual

Implements IBeforeAllTicks. If overriding this method in an inheritor, the base method should be called. To extend the functionality of copying data from the networked buffer to the engine, override and extend NetworkPositionRotation.CopyFromBufferToEngine instead.

Reimplemented from NetworkPosition.

◆ BeforeCopyPreviousState()

override void BeforeCopyPreviousState ( )
virtual

Implements IBeforeCopyPreviousState. If overriding this method in an inheritor, the base method should be called.

Reimplemented from NetworkPosition.

◆ CopyBackingFieldsToState()

override void CopyBackingFieldsToState ( bool  firstTime)
virtual

Implements NetworkBehaviour.CopyBackingFieldsToState. If overriding this method in an inheritor, the base method should be called.

Reimplemented from NetworkPosition.

◆ ReadAngularDrag() [1/3]

float ReadAngularDrag ( )

Reads from the field reserved to store the rigidbody angular drag on this object's networked data using the default Runner position read accuracy.

◆ ReadAngularDrag() [2/3]

float ReadAngularDrag ( int *  ptr)

Reads from the field reserved to store the rigidbody angular drag on the networked data pointed by ptr using the default Runner position read accuracy.

◆ ReadAngularDrag() [3/3]

static float ReadAngularDrag ( int *  ptr,
ReadAccuracy  readAccuracy 
)
static

Reads from the field reserved to store the rigidbody angular drag on the networked data pointed by ptr using the defined readAccuracy .

◆ ReadDrag() [1/3]

float ReadDrag ( )

Reads from the field reserved to store the rigidbody drag on this object's networked data using the default Runner position read accuracy.

◆ ReadDrag() [2/3]

float ReadDrag ( int *  ptr)

Reads from the field reserved to store the rigidbody drag on the networked data pointed by ptr using the default Runner position read accuracy.

◆ ReadDrag() [3/3]

static float ReadDrag ( int *  ptr,
ReadAccuracy  readAccuracy 
)
static

Reads from the field reserved to store the rigidbody drag on the networked data pointed by ptr using the defined readAccuracy .

◆ ReadDragsAndMass() [1/3]

Vector3 ReadDragsAndMass ( )
protected

Reads the values of a rigidbody drag, angular drag and mass field on this object's networked data using the default Runner position read accuracy. The values are returned as the x, y and z values of a Vector3, respectively.

◆ ReadDragsAndMass() [2/3]

Vector3 ReadDragsAndMass ( int *  ptr)
protected

Reads the values of a rigidbody drag, angular drag and mass field on the networked data pointed by ptr using the default Runner position read accuracy. The values are returned as the x, y and z values of a Vector3, respectively.

◆ ReadDragsAndMass() [3/3]

static Vector3 ReadDragsAndMass ( int *  ptr,
ReadAccuracy  readAccuracy 
)
staticprotected

Reads the values of a rigidbody drag, angular drag and mass field on the networked data pointed by ptr using the defined readAccuracy . The values are returned as the x, y and z values of a Vector3, respectively.

◆ ReadMass() [1/3]

float ReadMass ( )

Reads from the field reserved to store the rigidbody mass on this object's networked data using the default Runner position read accuracy.

◆ ReadMass() [2/3]

float ReadMass ( int *  ptr)

Reads from the field reserved to store the rigidbody mass on the networked data pointed by ptr using the default Runner position read accuracy.

◆ ReadMass() [3/3]

static float ReadMass ( int *  ptr,
ReadAccuracy  readAccuracy 
)
static

Reads from the field reserved to store the rigidbody mass on the networked data pointed by ptr using the defined readAccuracy .

◆ ReadNetworkRigidbodyFlags() [1/2]

NetworkRigidbodyFlags ReadNetworkRigidbodyFlags ( )

Reads from the field reserved to store the rigidbody flags on this object's networked data.

◆ ReadNetworkRigidbodyFlags() [2/2]

static NetworkRigidbodyFlags ReadNetworkRigidbodyFlags ( int *  ptr)
static

Reads from the field reserved to store the rigidbody flags on the networked data pointed by ptr .

◆ ReadNetworkRigidbodyRawFlags() [1/2]

int ReadNetworkRigidbodyRawFlags ( )
protected

Reads from the field reserved to store the rigid body flags on this object's networked data and returns the raw word value that might also carry flags specific to 2D or 3D rigid bodies. See also NetworkRigidbody.ReadNetworkRigidbodyFlags or NetworkRigidbody2D.ReadNetworkRigidbodyFlags.

◆ ReadNetworkRigidbodyRawFlags() [2/2]

static int ReadNetworkRigidbodyRawFlags ( int *  ptr)
staticprotected

Reads from a field reserved to store the rigid body flags on the networked data pointed by ptr and returns the raw word value that might also carry flags specific to 2D or 3D rigid bodies. See also NetworkRigidbody.ReadNetworkRigidbodyFlags or NetworkRigidbody2D.ReadNetworkRigidbodyFlags.

◆ RemotePrefabCreated()

override void RemotePrefabCreated ( )
virtual

Implements IRemotePrefabCreated. If overriding this method in an inheritor, the base method should be called.

Reimplemented from NetworkPosition.

◆ SetCollisionDetectionMode()

abstract void SetCollisionDetectionMode ( CollisionDetectionMode  mode)
protectedpure virtual

Sets a 2D or 3D rigid body collision detection mode .

Implemented in NetworkRigidbody2D, and NetworkRigidbody.

◆ SetIsKinematic()

abstract void SetIsKinematic ( bool  value)
protectedpure virtual

Sets a 2D or 3D rigid body kinematic field to value , according to the explicit implementation.

Implemented in NetworkRigidbody2D, and NetworkRigidbody.

◆ StateAuthorityChanged()

virtual void StateAuthorityChanged ( )
virtual

Implements IStateAuthorityChanged. If overriding this method in an inheritor, the base method should be called.

Reimplemented in NetworkRigidbody2D, and NetworkRigidbody.

◆ WriteAngularDrag() [1/3]

void WriteAngularDrag ( float  angDrag)

Writes the field reserved to store the rigidbody angular drag on this object's networked data using the default Runner position write accuracy.

◆ WriteAngularDrag() [2/3]

void WriteAngularDrag ( float  angDrag,
int *  ptr 
)

Writes to the field reserved to store the rigidbody angular drag on the networked data pointed by ptr using the default Runner position write accuracy.

◆ WriteAngularDrag() [3/3]

static void WriteAngularDrag ( float  angDrag,
int *  ptr,
WriteAccuracy  writeAccuracy 
)
static

Writes to the field reserved to store the rigidbody angular drag on the networked data pointed by ptr using the defined writeAccuracy .

◆ WriteDrag() [1/3]

void WriteDrag ( float  drag)

Writes the field reserved to store the rigidbody drag on this object's networked data using the default Runner position write accuracy.

◆ WriteDrag() [2/3]

void WriteDrag ( float  drag,
int *  ptr 
)

Writes to the field reserved to store the rigidbody drag on the networked data pointed by ptr using the default Runner position write accuracy.

◆ WriteDrag() [3/3]

static void WriteDrag ( float  drag,
int *  ptr,
WriteAccuracy  writeAccuracy 
)
static

Writes to the field reserved to store the rigidbody drag on the networked data pointed by ptr using the defined writeAccuracy .

◆ WriteDragsAndMass() [1/3]

void WriteDragsAndMass ( Vector3  values)
protected

Writes the values of a rigidbody drag, angular drag and mass field on this object's networked data using the default Runner position read accuracy. The values must be provided as the x, y and z values of a Vector3, respectively.

◆ WriteDragsAndMass() [2/3]

void WriteDragsAndMass ( Vector3  values,
int *  ptr 
)
protected

Reads the values of a rigidbody drag, angular drag and mass field on the networked data pointed by ptr using the default Runner position read accuracy. The values must be provided as the x, y and z values of a Vector3, respectively.

◆ WriteDragsAndMass() [3/3]

static void WriteDragsAndMass ( Vector3  values,
int *  ptr,
WriteAccuracy  writeAccuracy 
)
staticprotected

Reads the values of a rigidbody drag, angular drag and mass field on the networked data pointed by ptr using the defined writeAccuracy . The values must be provided as the x, y and z values of a Vector3, respectively.

◆ WriteMass() [1/3]

void WriteMass ( float  mass)

Writes the field reserved to store the rigidbody mass on this object's networked data using the default Runner position write accuracy.

◆ WriteMass() [2/3]

void WriteMass ( float  mass,
int *  ptr 
)

Writes to the field reserved to store the rigidbody mass on the networked data pointed by ptr using the default Runner position write accuracy.

◆ WriteMass() [3/3]

static void WriteMass ( float  mass,
int *  ptr,
WriteAccuracy  writeAccuracy 
)
static

Writes to the field reserved to store the rigidbody mass on the networked data pointed by ptr using the defined writeAccuracy .

◆ WriteNetworkRigidbodyFlags() [1/2]

void WriteNetworkRigidbodyFlags ( NetworkRigidbodyFlags  flags)

Writes to the field reserved to store the rigidbody flags on this object's networked data.

◆ WriteNetworkRigidbodyFlags() [2/2]

static void WriteNetworkRigidbodyFlags ( NetworkRigidbodyFlags  flags,
int *  ptr 
)
static

Reads from the field reserved to store the rigidbody flags on the networked data pointed by ptr .

◆ WriteNetworkRigidbodyRawFlags() [1/2]

void WriteNetworkRigidbodyRawFlags ( int  rawFlags)
protected

Writes to the field reserved to store the on this object's networked data. See also NetworkRigidbody.ReadNetworkRigidbodyFlags or NetworkRigidbody2D.ReadNetworkRigidbodyFlags.

◆ WriteNetworkRigidbodyRawFlags() [2/2]

static void WriteNetworkRigidbodyRawFlags ( int  rawFlags,
int *  ptr 
)
staticprotected

Writes to the field reserved to store the on this object's networked data. See also NetworkRigidbody.ReadNetworkRigidbodyFlags or NetworkRigidbody2D.ReadNetworkRigidbodyFlags.

Member Data Documentation

◆ _forceSnapshotInterpolated

bool _forceSnapshotInterpolated
protected

If the rigid body state is not predicted, but just interpolated between snapshots.

◆ WORD_COUNT_NRBB

const int WORD_COUNT_NRBB = OFFSET_FLAGS + WORD_COUNT_FLAGS
staticprotected

Number of words used by a NetworkRigidbodyBase instance on its networked data, including all inherited fields.