Experiences often reach beyond the limitations of a user's play space. To remedy this, we have a number of locomotion options to easily allow users to explore their virtual space.
To control where a user can and cannot move to, we use Unity's NavMesh feature. See the [NavMesh](🔗) page for more information.
Locomotion settings can be found in _Project Settings > Immerse SDK_

# Modes
There are a few different teleportation modes available in the SDK. You may find that different modes are more suited to different experiences.
## Instant
The Instant teleport mode will result in the user immediately appearing at the target location. The 'Teleport Delay' parameter can be useful here in the case that a transition such as a screen fade is required before teleporting. Use the Events (see below) to trigger these animations.
## Shift
This mode, instead of immediately repositioning the avatar, will animate the movement of the avatar between it's current position and target positions. This mode can often prove more immersive in applications that require frequent, small adjustments to the avatar's position. There are two Shift teleport modes. The difference between the two is how they calculate the speed/duration of the movement.
**Shift Speed** - The avatar will move at a consistent speed. The duration of the teleport will be longer depending on the distance.
**Shift Duration** - The avatar will move faster/slower depending on the distance required. The time taken to teleport short distances will be the same as longer distances.
Column Title | Description |
Animation Curve | This is used to add acceleration/deacceleration to the Shift teleport movement. |
Speed | Controls the speed of the Shift teleport movement. (_Shift Speed only_) |
Duration | Sets the duration of the Shift teleport movement. (_Shift Duration only_) |
# Restricting Teleport
Teleporting can be restricted at any point throughout your experience.