WasdController QML Type

Control node position and orientation with keys and mouse. More...

Import Statement: import QtQuick3D.Helpers
Inherits:

Item

Properties

Detailed Description

This helper allows the user to control a node using W, A, S, D, the arrow keys, and the mouse. Usually the controlled node is a Camera, specified in the controlledObject property.

Adding a WasdController can be highly useful both in applications that wish to provide a standard way of navigating the scene, and also as a temporary measure during development and troubleshooting, as it allows inspecting the scene at run time via familiar keyboard and mouse navigation.

The key bindings are as follows:

  • W or up - go forward
  • S or down - go backward
  • A or left - strafe left
  • D or right - strafe right
  • R or page up - move up
  • F or page down - move down
  • shift together with other keys - move faster, depending on shiftSpeed

The following snippet shows how a WasdController object can be added. By default both key and mouse based navigation is active, so in most cases there is no further configuration needed:

View3D {
    anchors.fill: parent
    camera: camera
    PerspectiveCamera {
        id: camera
        position: Qt.vector3d(0, 0, 600)
    }
    ...
}

WasdController {
    controlledObject: camera
}

Property Documentation

acceptedButtons : enumeration

Specifies the buttons accepted by the controller.

See also DragHandler and MultiPointHandler.


backSpeed : real

Specifies the speed of navigation when the back key is pressed.


controlledObject : QtQuick3D::Node

Specifies the node to control. This is typically a Camera object.


downSpeed : real

Specifies the speed of navigation when the down key is pressed.


forwardSpeed : real

Specifies the speed of navigation when the forward key is pressed.


[read-only] inputsNeedProcessing : bool

This property is true when there are inputs needing processing.


keysEnabled : bool

Enables key controls. The default value is true.


leftSpeed : real

Specifies the speed of navigation when the left key is pressed.


mouseEnabled : bool

Enables mouse controls. The default value is true.


rightSpeed : real

Specifies the speed of navigation when the right key is pressed.


shiftSpeed : real

Specifies the speed multiplier that is active when the shift key is pressed.


speed : real

Specifies the speed of navigation.


upSpeed : real

Specifies the speed of navigation when the up key is pressed.


xInvert : bool

Inverts the x-axis controls. The default value is false.


xSpeed : real

Specifies the speed of navigation when the mouse is moved along the X axis.


yInvert : bool

Inverts the y-axis controls. The default value is true.


ySpeed : real

Specifies the speed of navigation when the mouse is moved along the Y axis.


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