
GrabInteractor components, but replaces the Grabbable component with a Climbable one. Instead of moving a grabbed object to match the hand position, the Climbable component inverts the interaction and routes the grab deltas back to the player locomotor.ClimbingLocomotor receives the inverted grab deltas and transforms them into LocomotionEvent instances that move the player.Climbable component replaces the traditional Grabbable on surfaces that should be climbable. It is a PointableElement that listens for grab events but instead of moving itself to follow the hand, it calculates the movement delta and sends it back through the locomotion system.Climbable component, the following actions happen:Climbable component associated with the grab interactable.Climbable component calculates the inverse delta to determine how far to move the player to keep the hand at the grab point.ClimbingEvent instances and routed through the ClimbingLocomotionBroadcaster`.ClimbingLocomotor instance receives the ClimbingEvent events and updates the player’s movement.Climbable fields you can set:| Property | Description |
|---|---|
Slide velocity | A vector that defines the velocity to apply to the player when grabbing the Climbable component. Use Vector3.zero as the velocity value to disable sliding. |
Pull-up target | (Optional) Transform that contains location to move the player towards when they grab the Climbable component. |
Target Transform | Defines the world pose of this Climbable. This ensures that the ClimbingLocomotor remains synchronized with the Climbable during interactions like grabbing onto a moving platform. |
ClimbingLocomotionBroadcaster is a decorator for GrabInteractor, which allows it to be used for climbing. It serves as a bridge between the grab system and the locomotion system.Climbable instances use this broadcaster to route ClimbingEvent instances through the following path:ClimbingLocomotor instanceClimbable components discover which interactors support climbing.ClimbingLocomotor is the central component that receives all ClimbingEvent events from active climbs and transforms them into actual player movement. It manages multiple simultaneous grabs, combines their movements, and generates appropriate LocomotionEvent events.Climbable component includes a slide velocity, the player moves in that direction while grabbing it. This is useful for implementing activities like sliding down poles, traversing ziplines, or moving with conveyor surfaces.Climbable component includes a pull-up target and the player grabbing it reaches a height threshold, the locomotor automatically transitions the player to the target position.ClimbingLocomotor fields you can set to customize the behavior mentioned above:| Property | Description |
|---|---|
Last grab moves | If true, only the last grab point moves the player (recommended); otherwise, all grab points are averaged |
Two hands slide | If true, the player slides when at least two hands are grabbing |
Character feet | The character’s feet transform, used for pull-up mechanism calculations |
Transition speed | Speed of the transition to the top of a climbable when pulling up |
Transition start threshold | Vertical distance to the pull-up target before starting the transition |
Transition end threshold | Minimum distance to the pull-up target before stopping the transition |
ClimbingEvent provides context about a climb locomotion, including:Climbable instance being grabbedLocomotionEvent instances and flows through the locomotion pipeline. The events are consumed by a ClimbingLocomotor instance, which uses the data to update the player’s movement.DynamicMoveTowardsTargetProvider instance to manage this alignment by referencing it in the HandGrabInteractable.MovementProvider field. This is how the movement works:| Property | Description |
|---|---|
Attraction factor | Controls how quickly the body aligns to the grab point; higher values create faster alignment |
Grabbable or Climbable) to the existing GrabInteractable, and the system handles the rest.GrabInteractor can grab both types without any special configuration