KinematicCharacterController class Physics

Kinematic move-and-slide against the world's colliders.

Attach beside a Collider describing the character's volume; the backend must support characters (UnsupportedError otherwise). Call move once per fixed step; the corrected translation is applied to the node and returned.

Inheritance

Constructors

KinematicCharacterController({Vector3? up, double offset = 0.01, bool slide = true, double maxSlopeClimbAngle = pi / 4, double minSlopeSlideAngle = pi / 4, double? snapToGround = 0.1, bool autostep = false, double autostepMaxHeight = 0.3, double autostepMinWidth = 0.1, bool autostepIncludeDynamicBodies = true, double mass = 0.0})

Properties

autostep → bool
final
autostepIncludeDynamicBodies → bool
final
autostepMaxHeight → double
final
autostepMinWidth → double
final
enabled ↔ bool
Whether this component's update hook runs each frame.
getter/setter pairinherited
hashCode → int
The hash code for this object.
no setterinherited
isAttached → bool
Whether this component is currently attached to a node.
no setterinherited
isLoaded → bool
Whether onLoad has completed.
no setterinherited
isMounted → bool
Whether the owning node is part of a live scene graph.
no setterinherited
mass → double
Mass applied when pushing dynamic bodies. 0 pushes nothing.
final
maxSlopeClimbAngle → double
final
minSlopeSlideAngle → double
final
node → Node
The node this component is attached to.
no setterinherited
offset → double
Gap kept between the character and obstacles.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
slide → bool
Whether blocked motion slides along obstacles.
final
snapToGround → double?
Maximum ground distance to snap down to when walking off edges, or null to disable snapping.
final
up → Vector3
The character's up direction.
final

Methods

cloneFor(Node cloneOwner) → Component?
Returns a copy of this component for cloneOwner, the Node.clone counterpart of the owning node, or null to not carry the component to clones (the default).
inherited
fixedUpdate(double fixedDt) → void
Called once per fixed physics step while the component is mounted, enabled, and loaded. fixedDt is the fixed timestep of the surrounding PhysicsWorld, not the frame interval.
inherited
internalRetryPhysicsRegistration() → bool
Attempts registration. Returns true when registered (or permanently unregistrable, a backend without the feature) and false to keep waiting.
move(Vector3 desiredTranslation, {double? deltaSeconds}) → CharacterMovement
Moves by up to desiredTranslation, sliding along obstacles, and applies the corrected translation to the node.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onAttach() → void
Called when this component is added to a node.
inherited
onDetach() → void
Called when this component is removed from a node.
inherited
onLoad() → Future<void>
Optional asynchronous setup, such as loading an asset.
inherited
onMount() → void
Called when the owning node enters a live scene graph.
override
onUnmount() → void
Called when the owning node leaves a live scene graph.
override
toString() → String
A string representation of this object.
inherited
update(double deltaSeconds) → void
Called once per frame while the component is mounted, enabled, and loaded. deltaSeconds is the elapsed time since the previous tick. A traversal visits each component at most once. Removing this component or an earlier sibling is safe. A component inserted before the current traversal position starts on the next frame. Reordering component or child lists during traversal is unsupported.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited