> ## Documentation Index
> Fetch the complete documentation index at: https://docs-unity.molca.id/llms.txt
> Use this file to discover all available pages before exploring further.

# VR Locomotion

> Teleport + continuous movement setup aligned with Unity XRI template patterns.

**Primary approach:** combine **Teleportation** for comfort and long-distance repositioning with **Continuous Move** for short, precise adjustments.

This documentation follows the standard Unity **XR Interaction Toolkit (XRI)** template flow and how it is used in Molca VR scenes.

## Locomotion model

Use two locomotion modes in parallel:

* **Teleportation** for comfort-sensitive users and fast repositioning.
* **Continuous movement** for local motion during interaction-heavy tasks.
* **Snap turn** for rotation in all scenarios (no continuous/smooth rotation).

In practice, users teleport to an area first, then use continuous move to fine-tune their position.

## Recommended XRI rig setup

On the XR Origin / player rig, keep these XRI pieces wired and enabled:

* **Locomotion System** (or mediator, depending on XRI version)
* **Teleportation Provider**
* **Continuous Move Provider**
* **Snap Turn Provider**
* Left / right hand input actions for move, turn, and teleport activation

For Molca projects, ensure the rig also includes [VRPlayerManager](/vr/vr-player-manager) so locomotion can be toggled centrally when a step requires precision.

## Teleportation setup

* Place **Teleportation Area** or **Teleportation Anchor** on valid floor / platform surfaces.
* Keep target layers explicit so users cannot teleport outside training bounds.
* Use nav-safe surfaces only (avoid colliders that place users inside props).
* If teleport is part of sequence validation, review [TeleportStep](/vr/steps/teleport-step) behavior and complete-hook requirements.

## Continuous movement setup

* Keep movement speed moderate and consistent across scenarios.
* Disable gravity / flying behavior unless a scenario specifically requires vertical free-move.
* Tune strafe and forward speeds equally unless a design reason exists.
* Prefer conservative acceleration for comfort in enterprise training contexts.

## Runtime control in Molca

During precision interactions (for example valve / knob operations), temporarily disable locomotion to prevent accidental drift:

```csharp theme={null}
using MolcaSDK.VR;

public static class LocomotionUtil
{
    public static void SetEnabled(bool enabled)
    {
        if (VRPlayerManager.Instance != null)
            VRPlayerManager.Instance.SetLocomotionEnabled(enabled);
    }
}
```

## Comfort and UX tips

* Keep teleport ray and reticle clear, high contrast, and always visible when active.
* Avoid forced camera motion from scripts while continuous locomotion is enabled.
* Keep **snap turn** as the only rotation mode across all builds.
* Offer a simple in-app locomotion preference (teleport only vs mixed mode) when possible.

## Troubleshooting

* **Teleport ray appears but cannot land** - Verify teleport areas/anchors, interaction layers, and colliders.
* **Continuous move does not respond** - Check input action bindings and that the provider is enabled on the active rig.
* **Rotation feels too smooth / causes discomfort** - Disable **Continuous Turn Provider** and keep only **Snap Turn Provider** active.
* **User keeps moving during step interaction** - Disable locomotion through [VRPlayerManager](/vr/vr-player-manager) for that interaction window.
* **Motion sickness complaints** - Lower move/turn speed, prefer snap turn, and rely more on teleport.

## Related

* [VRPlayerManager](/vr/vr-player-manager)
* [TeleportStep](/vr/steps/teleport-step)
* [Scenario activity](/vr/scenario-activity)
