Develop
Develop
Select your platform

Step Interaction

Updated: Nov 6, 2025

What is a Step Interaction?

A Step in Locomotion terms, is a discrete movement in the ground plane for the length of an average human step, like moving backwards or sideways 50-80cms instantly. Discrete Steps allow users to do small adjustments in their position without having to do a Teleport or a controlled slide movement. Steps are particularly useful when the user wants to reposition themselves to be part of a large group of players interacting with each other, like taking a quick step back after a teleport to the group of people so they can see each other.

How does a Step Interaction work?

Step locomotion can be performed by sending a Translation.RelativeLocomotionEvent with the desired direction and magnitude expressed as the position vector. To perform a 80cm forward step one could broadcast the following event: new LocomotionEvent(Identifier, Vector3.forward * 0.8, LocomotionEvent.TranslationType.Relative). The LocomotionHandler will respond to the event and apply the movement to the player.

StepLocomotionBroadcaster

The StepLocomotionBroadcaster already implements the generation of steps in any of the four relative directions of the player (forward, backwards, left and right). By calling StepForward(), StepLeft(), etc. it will broadcast the locomotion event to be consumed by the handler.
One particularity of Steps as well as SlideLocomotionBroadcaster is defining what forwards means. In most experiences this is the direction of the head, but it could also be the direction of the hand, the estimated chest, the world forward direction... The StepLocomotionBroadcaster references a Transform to be used as the coordinate system for the steps generated.
Notice that unlike Teleport interactions, Steps are not performed via an Interactor-Interactable pair, it is merely a LocomotionEventBroadcaster as there are no candidates to Hover or Select.

Learn more

Design guidelines

Did you find this page helpful?