Physique
Introduction
Studio dispose d'un système physique intégré destiné à gérer des interactions robustes et dynamiques dans votre scène.Ajout de collisionneurs
- Les collisionneurs peuvent être imbriqués dans certaines configurations, mais pas dans d'autres. Par exemple, un collisionneur statique à l'intérieur d'un collisionneur dynamique, ou deux collisionneurs dynamiques imbriqués, pourraient mal se comporter.
- À moins que vous ne disposiez d'un composant géométrique qui soit également une forme de collision valide, vous devrez spécifier une forme manuellement. Par exemple, il n'existe pas de collisionneur compatible avec la primitive tétraèdre.
- La génération de collisionneurs de modèles GLTF pour les modèles complexes peut affecter les performances. :: :
Exemple
L'exemple qui suit montre comment ajouter un collisionneur à une entité au moment de l'exécution.
ecs.Collider.set(world, component.eid, {
shape : ecs.ColliderShape.Sphere,
radius,
mass : 1,
eventOnly : false,
lockXAxis : false,
lockYAxis : false,
lockZAxis : false,
friction : 0.5,
restitution : 0.5,
linearDamping : 0,
angularDamping : 0,
rollingFriction : 0.1,
spinningFriction : 0.1,
})
Statique ou dynamique
Dans les simulations physiques, les collisionneurs définissent la forme physique d'un objet pour la détection des collisions. Ils peuvent être statiques ou dynamiques, selon la manière dont ils interagissent avec les forces et l'environnement.
- Statique: Un collisionneur qui ne réagit pas aux forces externes ou aux simulations de la physique. Il reste en place, ce qui le rend idéal pour les objets inamovibles tels que les murs, les sols ou les terrains.
- **Dynamique : un collisionneur qui réagit aux forces externes telles que la gravité, les collisions ou les impulsions. Il convient aux objets mobiles tels que les joueurs, les ennemis ou les débris.
Événement seulement
Le paramètre eventOnly
convertit un collider en une zone de déclenchement - il ne bloque plus ou ne réagit plus aux objets physiques mais émet des événements d'entrée et de sortie lorsque d'autres corps physiques interagissent avec lui.
Fonctions
Vous pouvez appliquer directement des forces (linéaires et angulaires) à n'importe quelle entité dotée d'un collisionneur physique. Ces forces sont appliquées lors de la prochaine mise à jour de la simulation physique, qui a lieu à intervalles réguliers. La fonction accepte un vecteur 3D pour définir la direction et l'ampleur de la force.
Vélocité
Linéaire
ecs.physics.setLinearVelocity(world, component.eid, forceX, forceY, forceZ)
Force et couple
La force
ecs.physics.applyForce(world, component.eid, forceX, forceY, forceZ)