Locomotion
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
There are a few different teleportation modes available in the SDK. You may find that different modes are more suited to different experiences.
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.
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.
Field | 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) |
Teleporting can be restricted at any point throughout your experience.
using ImmerseSDK.Interaction.Locomotion;
// Block teleporting
Teleport.AllowTeleporting = false;
// Allow teleporting
Teleport.AllowTeleporting = true;