Auf dieser Seite

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

Ausführliche Beschreibung

Der Typ „CharacterController“ steuert die Bewegung eines Charakters.

Ein Charakter ist ein Objekt, das sich unter externer Steuerung bewegt, dabei jedoch durch physikalische Hindernisse eingeschränkt wird und (optional) der Schwerkraft unterliegt. Dies steht im Gegensatz zu „ dynamic rigid bodies “, die entweder vollständig von der Physiksimulation gesteuert werden (bei nicht-kinematischen Körpern) oder sich unabhängig von Hindernissen genau an die Stelle bewegen, an der sie platziert wurden (bei kinematischen Objekten).

Um die Bewegung eines Charakter-Controllers zu steuern, setzen Sie „ movement “ auf die gewünschte Geschwindigkeit.

Bei einer First-Person-Perspektive wird die Kamera in der Regel innerhalb eines Charakter-Controllers platziert.

Hinweis: „ collisionShapes “ muss auf eine einzelne „ CapsuleShape “ eingestellt sein. Andere Formen werden nicht unterstützt.

Hinweis: Der Charakter-Controller kann Hindernisse skalieren, die niedriger als ein Viertel der Höhe der Kapselform sind.

Siehe auch „Qt Quick 3D: Physikformen, Körper und Gelenke“.

Dokumentation zu den Eigenschaften

collisions : Collisions [read-only]

Diese Eigenschaft enthält den aktuellen Kollisionsstatus des Charakters. Sie ist entweder „ None “ für keine Kollision oder eine ODER-Kombination aus „ Side “, „ Up “ und „ Down “:

KonstanteBeschreibung
CharacterController.NoneDer Charakter berührt nichts. Ist die Schwerkraft nicht null, bedeutet dies, dass sich der Charakter im freien Fall befindet.
CharacterController.SideDer Charakter berührt etwas an seiner Seite.
CharacterController.UpDer Charakter berührt etwas über sich.
CharacterController.DownDer Charakter berührt etwas unter sich. Bei Standardschwerkraft bedeutet dies, dass sich der Charakter auf dem Boden befindet.

Hinweis: Die Richtungen werden relativ zur Standardschwerkraft definiert: „ Up “ verläuft immer entlang der positiven y-Achse, unabhängig vom Wert von „ CharacterController.gravity “ oder PhysicsWorld.gravity

enableShapeHitCallback : bool [since 6.6]

Diese Eigenschaft aktiviert bzw. deaktiviert den Callback „ CharacterController::shapeHit “ für diesen Charakter-Controller.

Standardwert: false

Diese Eigenschaft wurde in Qt 6.6 eingeführt.

gravity : vector3d

Diese Eigenschaft definiert die Schwerkraftbeschleunigung, die auf den Charakter wirkt. Für einen Charakter, der auf dem Boden läuft, sollte sie in der Regel auf „ PhysicsWorld.gravity “ gesetzt werden. Ein schwebender Charakter, der sich in drei Dimensionen bewegen kann, hat normalerweise eine Schwerkraft von „ (0, 0, 0) “.

Standardwert: (0, 0, 0).

midAirControl : bool

Diese Eigenschaft legt fest, ob die Eigenschaft „ movement “ wirksam ist, wenn sich der Charakter im freien Fall befindet. Dies ist nur relevant, wenn „ gravity “ nicht null ist. Der Wert „ true “ bedeutet, dass der Charakter in der Luft die Richtung wechselt, sobald sich „ movement “ ändert. Der Wert „ false “ bedeutet, dass der Charakter seine aktuelle Flugbahn beibehält, bis er auf ein anderes Objekt trifft.

Standardwert: true

movement : vector3d

Diese Eigenschaft definiert die kontrollierte Bewegung des Charakters. Dabei handelt es sich um die Geschwindigkeit, mit der sich der Charakter ohne Schwerkraft und ohne Wechselwirkung mit anderen Physikobjekten bewegen würde.

Diese Eigenschaft spiegelt nicht die tatsächliche Geschwindigkeit des Charakters wider. Wenn der Charakter am Gelände feststeckt, kann er sich langsamer bewegen als die durch „ movement “ definierte Geschwindigkeit. Umgekehrt kann er sich im freien Fall möglicherweise viel schneller bewegen.

Standardwert: (0, 0, 0)

Signal-Dokumentation

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

Dieses Signal wird ausgelöst, wenn „ movement “ aufgerufen wurde und dies zu einer Kollision mit „ DynamicRigidBody “ oder „ StaticRigidBody “ führen 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 lautet „ onShapeHit “.

Dieses Signal wurde in Qt 6.6 eingeführt.

Methodendokumentation

void teleport(vector3d position)

Bewegen Sie die Figur sofort an die Position ` position `, ohne auf Kollisionen zu prüfen. Der Aufrufer ist dafür verantwortlich, Überschneidungen mit statischen Objekten zu vermeiden.

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