Qt Quick 3D - XR Ejemplo de teletransporte de forma libre
Demuestra cómo implementar una locomoción sencilla en Qt Quick 3D XR.

Visión general
Este ejemplo muestra cómo moverse a lugares en el entorno virtual utilizando un sistema simple de teletransportación de forma libre, una forma no continua de movimiento.
Controles
Para la navegación, utiliza el joystick del mando derecho:
- Empuja el stick hacia delante para apuntar y suéltalo para teletransportarte.
- Mueve el stick hacia los lados para girar.
Implementación
La lógica de teletransporte se implementa en el componente FreeformTeleporter. Éste se encuentra en el subproyecto separado xr_shared, por lo que puedes reutilizarlo fácilmente en otros proyectos.
FreeformTeleporter { id: teleporter view: xrView originNode: xrOrigin cameraNode: xrOrigin.camera beamHandle: xrRightController rotationTriggerValue: xrRightController.xValue teleportTriggerValue: xrRightController.yValue onDoTeleportation: (cameraOriginPosition)=> { xrOrigin.position = cameraOriginPosition } onDoRotation: (cameraOriginRotation, cameraOriginPosition)=> { xrOrigin.rotation = cameraOriginRotation xrOrigin.position = cameraOriginPosition } }
El componente FreeformTeleporter tiene las siguientes propiedades que necesitan ser establecidas:
QtObject xrView
La propiedad xrView da acceso a la selección de rayos incorporada en XrView. Puede utilizar cualquier objeto que implemente un método rayPick. Por ejemplo, un View3D puede ser útil para la creación de prototipos.
Node originNode
La propiedad originNode especifica el nodo que el teletransportador de forma libre manipulará. En XR, la locomoción artificial se realiza moviendo el XrOrigin. Por lo tanto, utilizaremos el xrOrigin de nuestro XrView como el originNode.
Node cameraNode
La propiedad cameraNode proporciona la posición de la cámara. Al rotar, define el centro de rotación. Al teletransportarse, define la posición que se situará sobre la ubicación seleccionada. En este ejemplo, utilizamos el tracked XrCamera que creamos anteriormente.
Nota: En XR, el XrOrigin define la relación entre la escena y el espacio de referencia del usuario. Este espacio de referencia suele estar anclado al espacio físico que rodea al usuario. Si se cambia la posición de XrOrigin, cambiará el modo en que las ubicaciones físicas se asignan a las coordenadas de la escena. XrCamera sigue la posición de la cabeza del usuario. Cuando el usuario se mueve físicamente, la posición y orientación de XrCamera cambian con respecto a XrOrigin.
Node beamHandle
La propiedad beamHandle es el nodo utilizado como punto de inicio del haz de teletransporte. En este ejemplo, utilizamos el controlador derecho como beamHandle.
Vea también Locomoción en Qt Quick 3D Xr.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.