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.
Aktion | Steuerung |
---|---|
Drehen | Linker und rechter Stick auf dem rechten Controller |
Anvisieren und Teleportieren | Vorwä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.
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.