Provides custom API and state replication for collider-based character controller movement (not related to Unity's CharacterController type). Replicates both the internal state (Velocity, MaxSpeed, etc) and the Unity Transform data from the NetworkObject.StateAuthority to all other peers. Add this component to a GameObject to control movement and sync the position and/or rotation accurately, including client-side prediction.
More...
|
| Movement | ComputeRawMovement (Vector3 direction, ICallbacks callback=null, LayerMask? layerMask=null) |
| | Static query for surface movement data. Does not modify any data on state (neither transform, nor self). - Parameters
-
| direction | Intended movement direction. WIll be used to compute surface tangents. |
| callback | Optional custom callbacks object. |
| layerMask | Optional layermask. If not passed, the default one from Config will be used |
- Returns
- The NetworkCharacterController.Movement results
More...
|
| |
| void | Jump (bool ignoreGrounded=false, float? impulse=null) |
| | Basic implementation of a jump impulse (immediately integrates a vertical component to Velocity). - Parameters
-
| ignoreGrounded | Jump even if not in a grounded state. |
| impulse | Optional, if null Config.BaseImpulse will be used. |
More...
|
| |
| void | Move (Vector3 direction, ICallbacks callback=null, LayerMask? layerMask=null) |
| | Basic implementation of a full Move. Performs a movement query, uses its result to compute new Velocity, then applies penetration corrections + velocity integration into the transform position. Does not change Rotation. - Parameters
-
| direction | Intended movement direction, subject to movement query + acceleration. |
| callback | Optional custom callbacks object. |
| layerMask | Optional layermask. If not passed, the default one from Config will be used |
More...
|
| |
| override void | Spawned () |
| | Post spawn callback. More...
|
| |
| void | AfterTick () |
| | Called after each tick simulation completes. More...
|
| |
| void | PreTeleport () |
| | Captures the current state as the interpolation lerp TO target leading up to a teleport, and flags the next tick as a teleport. Call this BEFORE making any TRS changes to the synced transform which represent the teleport. For continuously moving rigidbodies, it is preferable to call the explicit Teleport() method. More...
|
| |
| 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. More...
|
| |
| override void | Spawned () |
| | Post spawn callback. More...
|
| |
| void | Teleport (Vector3? position, Rotation? rotation=null, Vector3? localScale=null, bool reset=false, Vector3? velocity=null, Vector3? angularVelocity=null) |
| | Teleport indicates that objects should not interpolate from the previous state to this new state. More...
|
| |
| virtual void | AfterAllTicks (bool resimulation, int tickCount) |
| | Called after the resimulation loop (when applicable), and also after the forward simulation loop. Only called on Updates where resimulation or forward ticks are processed. More...
|
| |
| virtual void | BeforeAllTicks (bool resimulation, int tickCount) |
| | Called before the resimulation loop (when applicable), and also before the forward simulation loop. Only called on Updates where resimulation or forward ticks are processed. More...
|
| |
| void | CopyStateFrom (NetworkBehaviour source) |
| | Copies entire state of passed in source NetworkBehaviour More...
|
| |
| 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...
|
| |
| 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...
|
| |
| 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...
|
| |
|
| bool | Grounded [get, set] |
| | Networked current grounded state (used only by Move and COmputeRawSteering) More...
|
| |
| bool | Jumped [get, set] |
| | Networked current jumped state (used only by Move and ComputeRawSteering to avoid clamping a jump speed when on the first subsequent query the collider still touches the ground) More...
|
| |
| float | MaxSpeed [get, set] |
| | Networked current max speed (used only by Move and ComputeRawSteering to clamp horizontal components of Velocity) More...
|
| |
| override int | PositionWordOffset [get] |
| | Internal use for automatic Area-of-Interest management. More...
|
| |
| Vector3 | Velocity [get, set] |
| | Networked current velocity (used only by Move and ComputeRawSteering to move the Character Controller) More...
|
| |
| override int | PositionWordOffset [get] |
| | Gets the Ptr offset of the Position values in allocated memory. More...
|
| |
| int * | TeleportCounter [get] |
| | The frame of the next Teleport action. More...
|
| |
| Transform | InterpolationTarget [get, set] |
| | The Transform object used for interpolation. Should be a non-physics GameObject. Typically a child of this GameObject without colliders, or a separate GameObject without colliders. More...
|
| |
| override int | PositionWordOffset [get] |
| | Gets the Ptr offset of the Position values in allocated memory. More...
|
| |
| abstract int | PositionWordOffset [get] |
| | The int* offset for the Ptr, for the memory location of the position data. 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...
|
| |
| 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...
|
| |
| 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...
|
| |
Provides custom API and state replication for collider-based character controller movement (not related to Unity's CharacterController type). Replicates both the internal state (Velocity, MaxSpeed, etc) and the Unity Transform data from the NetworkObject.StateAuthority to all other peers. Add this component to a GameObject to control movement and sync the position and/or rotation accurately, including client-side prediction.
Usage - For basic prototyping call the following methods:
NetworkCharacterController.Move()
NetworkCharacterController.Jump()
For more advanced uses, call only the movement query to get full surface movement data (NetworkCharacterController.Movement), and implement bespoke Move/Steering:
NetworkCharacterController.Jump()
A NetworkObject is required. Not to be combined with either NetworkTransformObsolete nor NetworkRigidbodyObsolete. These are mutually-exclusive options.