CharacterController QML Type
Controla el movimiento de un personaje. Más...
| Import Statement: | import QtQuick3D.Physics |
| Since: | Qt 6.4 |
| Inherits: |
Propiedades
- collisions : Collisions
- enableShapeHitCallback : bool
(since 6.6) - gravity : vector3d
- midAirControl : bool
- movement : vector3d
Señales
- shapeHit(PhysicsNode *body, vector3D position, vector3D impulse, vector3D normal)
(since 6.6)
Métodos
- void teleport(vector3d position)
Descripción detallada
El tipo CharacterController controla el movimiento de un personaje.
Un personaje es una entidad que se mueve bajo control externo, pero sigue estando limitado por barreras físicas y (opcionalmente) sujeto a la gravedad. Esto contrasta con dynamic rigid bodies que, o bien están completamente controlados por la simulación física (para cuerpos no cinemáticos); o se mueven exactamente donde se colocan, independientemente de las barreras (para objetos cinemáticos).
Para controlar el movimiento de un controlador de personaje, ajuste movement a la velocidad deseada.
Para una vista en primera persona, la cámara se coloca normalmente dentro de un controlador de personaje.
Nota: collisionShapes debe establecerse en un único CapsuleShape. No se admiten otras formas.
Nota: El controlador de personajes es capaz de escalar obstáculos que sean inferiores a una cuarta parte de la altura de la forma de la cápsula.
Véase también la documentación general de Formas y Cuerpos.
Documentación de propiedades
collisions : Collisions [read-only]
Esta propiedad contiene el estado de colisión actual del personaje. Puede ser None para ninguna colisión, o una combinación OR de Side, Up, y Down:
| Constante | Descripción |
|---|---|
CharacterController.None | El personaje no está tocando nada. Si la gravedad no es nula, significa que el personaje está en caída libre. |
CharacterController.Side | El personaje está tocando algo a su lado. |
CharacterController.Up | El personaje está tocando algo por encima de él. |
CharacterController.Down | El personaje está tocando algo por debajo. En gravedad estándar, esto significa que el personaje está en el suelo. |
Nota: Las direcciones se definen en relación con la gravedad estándar: Up está siempre a lo largo del eje y positivo, independientemente del valor de CharacterController.gravity o PhysicsWorld.gravity
enableShapeHitCallback : bool [since 6.6]
Esta propiedad activa/desactiva la llamada de retorno CharacterController::shapeHit para este controlador de caracteres.
Valor por defecto: false
Esta propiedad se introdujo en Qt 6.6.
gravity : vector3d
Esta propiedad define la aceleración gravitatoria que se aplica al personaje. Para un personaje que camina sobre el suelo, normalmente debería establecerse en PhysicsWorld.gravity. Un personaje flotante que tiene controles de movimiento en tres dimensiones normalmente tendrá gravedad (0, 0, 0).
Valor por defecto: (0, 0, 0).
midAirControl : bool
Esta propiedad define si la propiedad movement tiene efecto cuando el personaje está en caída libre. Sólo es relevante si gravity no es nulo. Un valor de true significa que el personaje cambiará de dirección en el aire cuando cambie movement. Un valor de false significa que el personaje continuará en su trayectoria actual hasta que choque con otro objeto.
Valor por defecto: true
movement : vector3d
Esta propiedad define el movimiento controlado del personaje. Esta es la velocidad a la que el personaje se movería en ausencia de gravedad y sin interactuar con otros objetos físicos.
Esta propiedad no refleja la velocidad real del personaje. Si el personaje está pegado al terreno, puede moverse más despacio que la velocidad definida por movement. Por el contrario, si el personaje está en caída libre, puede moverse mucho más rápido.
Valor por defecto: (0, 0, 0)
Señal Documentación
[since 6.6] shapeHit(PhysicsNode *body, vector3D position, vector3D impulse, vector3D normal)
Esta señal se emite cuando se ha llamado a movement y se produciría una colisión con un DynamicRigidBody o un StaticRigidBody y enableShapeHitCallback se establece en true. Los parámetros body, position, impulse y normal contienen el cuerpo, la posición, la fuerza de impulso y la normal del punto de contacto.
Nota: El manejador correspondiente es onShapeHit.
Esta señal se introdujo en Qt 6.6.
Documentación del método
void teleport(vector3d position)
Mueve inmediatamente el personaje a position sin comprobar si hay colisiones. La persona que llama es responsable de evitar la superposición con objetos estáticos.
© 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.