Guides

VRTK_BasicTeleport

Overview

Updates the x/z position of the SDK Camera Rig with an optional screen fade.

The y position is not altered by the Basic Teleport so it only allows for movement across a 2D plane.

Script Usage:

  • Place the VRTK_BasicTeleport script on any active scene GameObject.

Script Dependencies:

  • An optional Destination Marker (such as a Pointer) to set the destination of the teleport location.

Inspector Parameters

  • Blink To Color: The colour to fade to when fading on teleport.
  • Blink Transition Speed: The time taken to fade to the Blink To Color. Setting the speed to 0 will mean no fade effect is present.
  • Distance Blink Delay: Determines how long the fade will stay present out depending on the distance being teleported. A value of 0 will not delay the teleport fade effect over any distance, a max value will delay the teleport fade in even when the distance teleported is very close to the original position.
  • Headset Position Compensation: If this is checked then the teleported location will be the position of the headset within the play area. If it is unchecked then the teleported location will always be the centre of the play area even if the headset position is not in the centre of the play area.
  • Target List Policy: A specified VRTK_PolicyList to use to determine whether destination targets will be acted upon by the teleporter.
  • Nav Mesh Data: An optional NavMeshData object that will be utilised for limiting the teleport to within any scene NavMesh.

Class Events

  • Teleporting - Emitted when the teleport process has begun.
  • Teleported - Emitted when the teleport process has successfully completed.

Unity Events

Adding the VRTK_BasicTeleport_UnityEvents component to VRTK_BasicTeleport object allows access to UnityEvents that will react identically to the Class Events.

  • All C# delegate events are mapped to a Unity Event with the On prefix. e.g. MyEvent -> OnMyEvent.

Event Payload

  • float distance - The distance between the origin and the collided destination.
  • Transform target - The Transform of the collided destination object.
  • RaycastHit raycastHit - The optional RaycastHit generated from when the ray collided.
  • Vector3 destinationPosition - The world position of the destination marker.
  • Quaternion? destinationRotation - The world rotation of the destination marker.
  • bool forceDestinationPosition - If true then the given destination position should not be altered by anything consuming the payload.
  • bool enableTeleport - Whether the destination set event should trigger teleport.
  • VRTK_ControllerReference controllerReference - The optional reference to the controller controlling the destination marker.

Class Methods

InitDestinationSetListener/2

public virtual void InitDestinationSetListener(GameObject markerMaker, bool register)

  • Parameters
    • GameObject markerMaker - The game object that is used to generate destination marker events, such as a controller.
    • bool register - Determines whether to register or unregister the listeners.
  • Returns
    • none

The InitDestinationSetListener method is used to register the teleport script to listen to events from the given game object that is used to generate destination markers. Any destination set event emitted by a registered game object will initiate the teleport to the given destination location.

ToggleTeleportEnabled/1

public virtual void ToggleTeleportEnabled(bool state)

  • Parameters
    • bool state - Toggles whether the teleporter is enabled or disabled.
  • Returns
    • none

The ToggleTeleportEnabled method is used to determine whether the teleporter will initiate a teleport on a destination set event, if the state is true then the teleporter will work as normal, if the state is false then the teleporter will not be operational.

ValidLocation/2

public virtual bool ValidLocation(Transform target, Vector3 destinationPosition)

  • Parameters
    • Transform target - The Transform that the destination marker is touching.
    • Vector3 destinationPosition - The position in world space that is the destination.
  • Returns
    • bool - Returns true if the target is a valid location.

The ValidLocation method determines if the given target is a location that can be teleported to

Teleport/1

public virtual void Teleport(DestinationMarkerEventArgs teleportArgs)

  • Parameters
    • DestinationMarkerEventArgs teleportArgs - The pseudo Destination Marker event for the teleport action.
  • Returns
    • none

The Teleport/1 method calls the teleport to update position without needing to listen for a Destination Marker event.

Teleport/4

public virtual void Teleport(Transform target, Vector3 destinationPosition, Quaternion? destinationRotation = null, bool forceDestinationPosition = false)

  • Parameters
    • Transform target - The Transform of the destination object.
    • Vector3 destinationPosition - The world position to teleport to.
    • Quaternion? destinationRotation - The world rotation to teleport to.
    • bool forceDestinationPosition - If true then the given destination position should not be altered by anything consuming the payload.
  • Returns
    • none

The Teleport/4 method calls the teleport to update position without needing to listen for a Destination Marker event. It will build a destination marker out of the provided parameters.

ForceTeleport/2

public virtual void ForceTeleport(Vector3 destinationPosition, Quaternion? destinationRotation = null)

  • Parameters
    • Vector3 destinationPosition - The world position to teleport to.
    • Quaternion? destinationRotation - The world rotation to teleport to.
  • Returns
    • none

The ForceTeleport method forces the position to update to a given destination and ignores any target checking or floor adjustment.

SetActualTeleportDestination/2

public virtual void SetActualTeleportDestination(Vector3 actualPosition, Quaternion? actualRotation)

  • Parameters
    • Vector3 actualPosition - The actual position that the teleport event should use as the final location.
    • Quaternion? actualRotation - The actual rotation that the teleport event should use as the final location.
  • Returns
    • none

The SetActualTeleportDestination method forces the destination of a teleport event to the given Vector3.

ResetActualTeleportDestination/0

public virtual void ResetActualTeleportDestination()

  • Parameters
    • none
  • Returns
    • none

The ResetActualTeleportDestination method removes any previous forced destination position that was set by the SetActualTeleportDestination method.

Example

VRTK/Examples/004_CameraRig_BasicTeleport uses the VRTK_Pointer script on the Controllers to initiate a laser pointer by pressing the Touchpad on the controller and when the laser pointer is deactivated (release the Touchpad) then the user is teleported to the location of the laser pointer tip as this is where the pointer destination marker position is set to.