Teletransportation

El teletransporte es una de las formas más intuitivas y cómodas de desplazamiento en realidad virtual, ya que evita el mareo cinético al permitir a los usuarios moverse instantáneamente a diferentes áreas dentro de la escena. En este apartado, partiremos del proyecto de Locomotion y añadiremos la funcionalidad de teletransportación al controlador derecho, además de la opción de giro.

Para ayudarte a implementar esta funcionalidad, te comparto un video tutorial donde aprenderás a configurar el sistema de teletransporte en Unity para Meta Quest.

Video: ¿Cómo Teletransportarse en Realidad Virtual? Unity Meta Quest

Creación del Área de Teletransportación con NavMesh

Para definir una zona de teletransporte en el primer piso, crearemos un objeto vacío:

  • Clic derecho → Create Empty y lo llamaremos Teleport First Floor.
  • En el Inspector, haremos Reset en la Transform para asegurarnos de que está correctamente posicionado.
  • Agregaremos el componente Teleport Interactable, el cual permite definir y configurar una zona de teletransporte.

Este Script requiere definir una superficie de teletransporte, lo cual podemos hacer de dos maneras:

  • A través de NavMesh (para permitir un desplazamiento basado en mapeo de navegación).
  • A través de Colliders (para definir áreas específicas de teletransporte).

En este caso, utilizaremos NavMesh Surface:

  • Agregamos el componente NavMesh Surface en Teleport First Floor.
  • En el Inspector, buscamos el primer piso y le agregamos NavMesh Surface.
  • Ajustamos los parámetros para definir correctamente la zona de navegación del jugador.
  • Vamos a Window → AI → Navigation, donde podemos modificar detalles como el radio, la altura del agente, y la pendiente máxima.
  • Cambiamos Collect Objects a Current Object Hierarchy, asegurando que solo tome en cuenta los objetos del primer piso.
  • Hacemos clic en Bake para generar la superficie navegable.

Al finalizar este proceso, tendremos una zona definida en la que el jugador podrá teletransportarse.

Configuración del Teletransporte en el Controlador 

Ahora que tenemos la superficie de teletransporte, debemos agregar la funcionalidad al controlador derecho:

  • En la jerarquía, buscamos Right Controller dentro del OVR Controllers.
  • Dentro de Locomotion Controller Interaction Group, activamos la opción de Teleport a parte de la de Turner.
  • En Script NavMesh Surface del Teleport First Floor ponemos en el Area Name el nombre definido en la Default Area del NavMesh Surface del Floor, en este caso Wallkable.
  • Agregamos el componente Reticle Data Teleport, lo que permitirá cambiar el indicador visual que aparece al apuntar con el rayo de teletransporte.

Área de Teletransportación Inválida

Hasta ahora hemos definido todas las zonas de teletransporte, pero es importante marcar aquellas áreas donde el usuario no puede teletransportarse, como los espacios vacíos. Para ello, crearemos una zona de teletransporte inválida que impida el movimiento en ciertas áreas:

  • Clic derecho → Create Empty y lo llamaremos Invalid Teleport.

  • En el Inspector, haremos Reset en la Transform para asegurarnos de que está correctamente posicionado.

  • Agregaremos el componente Teleport Interactable y haremos algunos cambios en su configuración:

    • Desactivamos la opción de Allow Teleport.
    • En Opciones → Score, cambiamos el valor a -10 para evitar conflictos con otras zonas.
  • Agregamos una superficie de teletransporte inválida:

    • Buscamos Plane Surface en el Inspector y la agregamos.
    • Como la superficie aparecerá de manera vertical, modificamos su rotación en X a 90° para que quede horizontal.
    • Referenciamos la superficie en el Teleport Interactable.
  • Finalmente, agregamos el componente Reticle Data Teleport y cambiamos el modo de Valid Target a Invalid Target, lo que permitirá mostrar un indicador especial al apuntar a esta zona.

Prueba del Sistema de Teletransporte

Ahora, al utilizar el joystick derecho, podemos elegir entre girar o activar el teletransporte. Para teletransportarnos, simplemente apuntamos a una superficie válida y soltamos el botón. Si intentamos teletransportarnos a una zona inválida, el sistema nos lo indicará correctamente y evitará el movimiento. Como se muestra en el video a continuación, el sistema permite desplazarse de manera intuitiva. 

¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar