Qt Quick 3D - XR Freeform Teleportation Beispiel

Demonstriert, wie man eine einfache Fortbewegung in Qt Quick 3D XR macht.

Überblick

Dieses Beispiel zeigt, wie man sich mit einem einfachen Freiform-Teleportationssystem, einer nicht-kontinuierlichen Form der Bewegung, zu Orten in der virtuellen Umgebung bewegen kann.

Steuerelemente

Wenn Sie das Beispiel ausführen, verwenden Sie die folgenden Steuerelemente für die Navigation.

AktionSteuerung
DrehenLinker und rechter Stick auf dem rechten Controller
Anvisieren und TeleportierenVorwärts-Stick auf dem rechten Controller

Implementierung

Sie können FreeformTeleporter problemlos in anderen Projekten wiederverwenden, da die gesamte Logik in diesem Typ enthalten ist.

FreeformTeleporter {
    id: teleporter

    rayPicker: xrView
    cameraOrigin: xrOrigin
    camera: xrOrigin.camera
    beamHandle: xrRightController
    onDoTeleportation: (cameraOriginPosition)=> {
                           xrOrigin.position = cameraOriginPosition
                       }
    onDoRotation: (cameraOriginRotation, cameraOriginPosition)=> {
                      xrOrigin.rotation = cameraOriginRotation
                      xrOrigin.position = cameraOriginPosition
                  }
}

Die FreeformTeleporter-Komponente hat die folgenden Eigenschaften, die festgelegt werden müssen:

var rayPicker

Die Eigenschaft rayPicker kann ein beliebiges Objekt sein, das eine rayPick-Methode implementiert. In diesem Beispiel verwenden wir die eingebaute RayPick-Methode von XrView.

Node cameraOrigin

Die Eigenschaft cameraOrigin ist das Zentrum des lokalen Referenzraums der Kamera. In Xr ist dies der Ort, an dem verfolgte Elemente, wie die Kamera, relativ zueinander platziert werden. Wir werden daher den Knoten XrOrigin als cameraOrigin verwenden.

Node camera

Die Eigenschaft camera enthält die Kamera, die zum Rendern der Szene verwendet wird. In diesem Beispiel verwenden wir die verfolgte XrCamera, die wir zuvor erstellt haben.

Node beamHandle

Die Eigenschaft beamHandle ist der Knoten, der als Startpunkt für den Teleportationsstrahl verwendet wird. In diesem Beispiel wird der rechte Controller xrRightController als beamHandle verwendet.

Beispielprojekt @ code.qt.io

Siehe auch Locomotion in Qt Quick 3D Xr.

© 2025 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.