Base class for Fusion network components, which are associated with a NetworkObject. More...
Inherits SimulationBehaviour, ISpawned, and IDespawned.
Inherited by HitboxRoot, NetworkAreaOfInterestBehaviour, and NetworkMecanimAnimator.
Classes | |
struct | Interpolator |
Interpolator provides a set of methods to get the "from" and "to" ticks of the associated [Networked] property, as well as the current interpolation value for the two, but it also provides a Value property as a shortcut to get the actual interpolated value for those parameters.
| |
struct | RawInterpolator |
RawInterpolator provides a set of methods to get the "from" and "to" ticks of the associated [Networked] property, as well as the current interpolation value for the two. All methods return raw memory pointers and expects the caller to be able to convert the data to the proper types.
| |
Public Types | |
enum class | InterpolationDataSources |
Options for which time frame this object will render in. More... | |
Public Member Functions | |
virtual void | CopyBackingFieldsToState (bool firstTime) |
void | CopyStateFrom (NetworkBehaviour source) |
Copies entire state of passed in source NetworkBehaviour More... | |
virtual void | CopyStateToBackingFields () |
virtual void | Despawned (NetworkRunner runner, bool hasState) |
Called before the network object is despawned More... | |
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) |
virtual bool | IsInterpolationDataPredicted () |
If the behaviour data should be interpolated between latest predicted states or between snapshots. More... | |
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... | |
virtual void | Spawned () |
Post spawn callback. More... | |
Public Member Functions inherited from SimulationBehaviour | |
virtual 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. More... | |
Public Member Functions inherited from Behaviour | |
T | AddBehaviour< T > () |
Wrapper for Unity's GameObject.AddComponent() More... | |
T | 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 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... | |
Public Attributes | |
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... | |
Properties | |
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... | |
Base class for Fusion network components, which are associated with a NetworkObject.
Derived from SimulationBehaviour, components derived from this class are associated with a NetworkRunner and Simulation. Components derived from this class are associated with a parent NetworkObject. and can use the NetworkedAttribute on properties to automate state synchronization, and can use the RpcAttribute on methods, to automate messaging.
|
strong |
Options for which time frame this object will render in.
void CopyStateFrom | ( | NetworkBehaviour | source | ) |
Copies entire state of passed in source NetworkBehaviour
source | Source NetworkBehaviour to copy data from |
|
virtual |
Called before the network object is despawned
hasState | If the state of the behaviour is still accessible |
Reimplemented in HitboxRoot, and NetworkTransform.
|
virtual |
Fusion FixedUpdate timing callback.
Reimplemented from SimulationBehaviour.
Reimplemented in NetworkMecanimAnimator.
T? GetInput< T > | ( | ) |
T |
T | : | unmanaged | |
T | : | INetworkInput |
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).
The returned input struct originates from the NetworkObject.InputAuthority, and if valid contains the inputs supplied by that PlayerRef for the current simulation tick.
T | : | unmanaged | |
T | : | INetworkInput |
bool GetInterpolationData | ( | out InterpolationData | data, |
bool? | predicted = null |
||
) |
Get 'To' and 'From' states, and the Alpha (t) values needed for lerping.
data | The returned values. |
predicted | Force interpolation to the current Simulations time frame |
bool GetInterpolationData | ( | out InterpolationData | data, |
out bool | predicted | ||
) |
Get 'To' and 'From' states, and the Alpha (t) values needed for interpolation.
data | The returned values. |
predicted | If the interpolation data is in the predicted time frame (true) or between snapshots (false), according to the InterpolationDataSource. |
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.
propertyName | Name of the [Networked] property |
RawInterpolator
for the networked propertyInterpolator<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
.
propertyName | Name of the [Networked] property |
T | Type of the [Networked] property |
Interpolator
for the networked propertyT | : | struct |
int GetLocalAuthorityMask | ( | ) |
Gets a bitmask of AuthorityMasks flags, representing the current local authority over this NetworkObject.
|
virtual |
If the behaviour data should be interpolated between latest predicted states or between snapshots.
Reimplemented in NetworkRigidbodyBase.
|
static |
This is a special method that is meant to be used only for [Networked] properties inline initialization.
|
static |
This is a special method that is meant to be used only for [Networked] properties inline initialization.
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
wordOffset | Word offset to monitor for changes |
wordCount | How many words to monitor for changes, from offset and up |
callback | Callback to invoke |
T | Type of the behaviour |
T | : | NetworkBehaviour |
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
propertyName | Name of the property to monitor for changes |
callback | Callback to invoke |
T | Type of the behaviour |
T | : | NetworkBehaviour |
void OnChangeClearAll | ( | ) |
Clear all dynamic OnChange callbacks from this behaviour
bool OnChangeRemove | ( | NetworkBehaviourCallbackReference | reference | ) |
Removes a specific OnChange callback from this behaviour
reference | The reference returned by OnChangeAdd |
|
static |
|
virtual |
Post spawn callback.
Reimplemented in NetworkTransformObsolete, NetworkRigidbodyObsolete2D, NetworkRigidbodyObsolete, NetworkCharacterController, NetworkTransform, NetworkRigidbody2D, NetworkRigidbody, NetworkPosition, and NetworkMecanimAnimator.
int ObjectIndex |
The index of this NetworkBehaviour, in the NetworkObject.NetworkedBehaviours array.
int offset |
Gives access to the offset (in 32 bit words) and count (in 32 bit words) of this behaviour backing data
int* Ptr |
Pointer to the allocated memory associated with this Object.
|
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.
|
get |
The unique identifier for this network behaviour.
|
getset |
Get/Set the time frame this object is rendered in.
|
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.
Returns "true" by default.