CharacterController QML Type
Steuert die Bewegung einer Figur. Mehr...
Import Statement: | import QtQuick3D.Physics |
Since: | Qt 6.4 |
Inherits: |
Eigenschaften
- collisions : Collisions
- enableShapeHitCallback : bool
(since 6.6)
- gravity : vector3d
- midAirControl : bool
- movement : vector3d
Signale
- shapeHit(PhysicsNode *body, vector3D position, vector3D impulse, vector3D normal)
(since 6.6)
Methoden
- teleport(vector3d position)
Detaillierte Beschreibung
Der Typ CharacterController steuert die Bewegung einer Figur.
Ein Charakter ist eine Entität, die sich unter externer Kontrolle bewegt, aber dennoch durch physikalische Barrieren eingeschränkt ist und (optional) der Schwerkraft unterliegt. Dies steht im Gegensatz zu dynamic rigid bodies, die entweder vollständig von der Physiksimulation gesteuert werden (für nicht-kinematische Körper) oder sich genau dort bewegen, wo sie platziert werden, unabhängig von Barrieren (für kinematische Objekte).
Um die Bewegung eines Charakter-Controllers zu steuern, setzen Sie movement auf die gewünschte Geschwindigkeit.
In der Ego-Perspektive wird die Kamera in der Regel innerhalb eines Charakter-Controllers platziert.
Hinweis: collisionShapes muss auf eine einzelne CapsuleShape eingestellt werden. Andere Formen werden nicht unterstützt.
Hinweis: Der Charakter-Controller ist in der Lage, Hindernisse zu skalieren, die niedriger als ein Viertel der Höhe der Kapselform sind.
Siehe auch die Übersichtsdokumentation zu Formen und Körpern.
Eigenschaft Dokumentation
collisions : Collisions |
Diese Eigenschaft enthält den aktuellen Kollisionsstatus der Figur. Sie ist entweder None
für keine Kollision oder eine ODER-Kombination aus Side
, Up
und Down
:
Konstante | Beschreibung |
---|---|
CharacterController.None | Die Figur berührt nichts. Wenn die Schwerkraft nicht Null ist, bedeutet dies, dass sich die Figur im freien Fall befindet. |
CharacterController.Side | Die Figur berührt etwas auf ihrer Seite. |
CharacterController.Up | Die Figur berührt etwas oberhalb von ihr. |
CharacterController.Down | Die Figur berührt etwas, das sich unter ihr befindet. Bei normaler Schwerkraft bedeutet dies, dass sich die Figur auf dem Boden befindet. |
Hinweis: Die Richtungen sind relativ zur Standardgravitation definiert: Up
liegt immer entlang der positiven y-Achse, unabhängig vom Wert von CharacterController.gravity oder PhysicsWorld.gravity
enableShapeHitCallback : bool |
Diese Eigenschaft aktiviert/deaktiviert den CharacterController::shapeHit Callback für diesen Character Controller.
Standardwert: false
Diese Eigenschaft wurde in Qt 6.6 eingeführt.
gravity : vector3d |
Diese Eigenschaft definiert die Gravitationsbeschleunigung, die auf die Figur wirkt. Für einen Charakter, der auf dem Boden läuft, sollte sie normalerweise auf PhysicsWorld.gravity gesetzt werden. Ein schwebender Charakter, der über Bewegungssteuerungen in drei Dimensionen verfügt, hat normalerweise die Schwerkraft (0, 0, 0)
.
Standardwert: (0, 0, 0)
.
midAirControl : bool |
Diese Eigenschaft legt fest, ob die Eigenschaft movement Auswirkungen hat, wenn sich die Figur im freien Fall befindet. Dies ist nur relevant, wenn gravity nicht null ist. Ein Wert von true
bedeutet, dass die Figur in der Luft die Richtung ändert, wenn movement
sich ändert. Ein Wert von false
bedeutet, dass die Figur ihre aktuelle Flugbahn beibehält, bis sie auf ein anderes Objekt trifft.
Standardwert: true
movement : vector3d |
Diese Eigenschaft definiert die kontrollierte Bewegung der Figur. Dies ist die Geschwindigkeit, mit der sich die Figur ohne Schwerkraft und ohne Interaktion mit anderen physikalischen Objekten bewegen würde.
Diese Eigenschaft spiegelt nicht die tatsächliche Geschwindigkeit des Charakters wider. Wenn die Spielfigur gegen das Gelände stößt, kann sie sich langsamer als mit der durch movement
definierten Geschwindigkeit bewegen. Befindet sich die Figur dagegen im freien Fall, kann sie sich viel schneller bewegen.
Standardwert: (0, 0, 0)
Signal Dokumentation
|
Dieses Signal wird ausgegeben, wenn movement aufgerufen wurde und es zu einer Kollision mit einem DynamicRigidBody oder einem StaticRigidBody kommen würde und enableShapeHitCallback auf true
gesetzt ist. Die Parameter body, position, impulse und normal enthalten den Körper, die Position, die Impulskraft und die Normale für den Kontaktpunkt.
Hinweis: Der entsprechende Handler ist onShapeHit
.
Dieses Signal wurde in Qt 6.6 eingeführt.
Dokumentation der Methode
teleport(vector3d position) |
Bewegt die Figur sofort nach position, ohne auf Kollisionen zu prüfen. Der Aufrufer ist verantwortlich für die Vermeidung von Überschneidungen mit statischen Objekten.
© 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.