CharacterController QML Type

Steuert die Bewegung einer Figur. Mehr...

Import Statement: import QtQuick3D.Physics
Since: Qt 6.4
Inherits:

PhysicsBody

Eigenschaften

Signale

  • shapeHit(PhysicsNode *body, vector3D position, vector3D impulse, vector3D normal) (since 6.6)

Methoden

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 [read-only]

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:

KonstanteBeschreibung
CharacterController.NoneDie Figur berührt nichts. Wenn die Schwerkraft nicht Null ist, bedeutet dies, dass sich die Figur im freien Fall befindet.
CharacterController.SideDie Figur berührt etwas auf ihrer Seite.
CharacterController.UpDie Figur berührt etwas oberhalb von ihr.
CharacterController.DownDie 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 [since 6.6]

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

[since 6.6] shapeHit(PhysicsNode *body, vector3D position, vector3D impulse, vector3D normal)

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.