Recherche…


Les collisionneurs

Box Collider

Un Collider primitif en forme de cuboïde. Activé et désactivé les collisionneurs de boîtes

Propriétés

  • Is Trigger - Si coché, le Box Collider ignore la physique et devient un collisionneur de déclenchement

  • Material - Une référence, si spécifiée, au matériau physique du Box Collider

  • Centre - La position centrale du Box Collider dans l'espace local

  • Size - La taille du Box Collider mesurée dans l'espace local

Exemple

// Add a Box Collider to the current GameObject.
BoxCollider myBC = BoxCollider)myGameObject.gameObject.AddComponent(typeof(BoxCollider));
 
// Make the Box Collider into a Trigger Collider.
myBC.isTrigger= true;

// Set the center of the Box Collider to the center of the GameObject.
myBC.center = Vector3.zero;

// Make the Box Collider twice as large.
myBC.size = 2;

Sphère Collider

Un Collider primitif en forme de sphère. Collisionneurs de sphères activés et désactivés

Propriétés

  • Is Trigger - Si coché, le collisionneur Sphère ignorera la physique et deviendra un collisionneur de déclenchement

  • Material - Une référence, si spécifiée, au matériau physique du collisionneur Sphère

  • Centre - La position centrale du collisionneur Sphère dans l'espace local

  • Rayon - Le rayon du collisionneur

Exemple

// Add a Sphere Collider to the current GameObject.
SphereCollider mySC = SphereCollider)myGameObject.gameObject.AddComponent(typeof(SphereCollider));
 
// Make the Sphere Collider into a Trigger Collider.
mySC.isTrigger= true;

// Set the center of the Sphere Collider to the center of the GameObject.
mySC.center = Vector3.zero;

// Make the Sphere Collider twice as large.
mySC.radius = 2;

Collisionneur de capsules

Deux demi-sphères reliées par un cylindre. Activé et désactivé Collisionneurs de capsules

Propriétés

  • Is Trigger - Si coché, le collisionneur de capsule ignorera la physique et deviendra un collisionneur de déclenchement

  • Material - Une référence, si spécifiée, au matériau physique du collisionneur de capsule

  • Centre - La position centrale du collisionneur de capsules dans l'espace local

  • Rayon - Le rayon dans l'espace local

  • Hauteur - Hauteur totale du collisionneur

  • Direction - L'axe d'orientation dans l'espace local

Exemple

// Add a Capsule Collider to the current GameObject.
CapsuleCollider myCC = CapsuleCollider)myGameObject.gameObject.AddComponent(typeof(CapsuleCollider));
 
// Make the Capsule Collider into a Trigger Collider.
myCC.isTrigger= true;

// Set the center of the Capsule Collider to the center of the GameObject.
myCC.center = Vector3.zero;

// Make the Sphere Collider twice as tall.
myCC.height= 2;

// Make the Sphere Collider twice as wide.
myCC.radius= 2;

// Set the axis of lengthwise orientation to the X axis.
myCC.direction = 0;

// Set the axis of lengthwise orientation to the Y axis.
myCC.direction = 1;

// Set the axis of lengthwise orientation to the Y axis.
myCC.direction = 2;

Collisionneur de roue

Propriétés

  • Mass - La masse du collisionneur de roue

  • Rayon - Le rayon dans l'espace local

  • Taux d'amortissement des roues - Valeur d'amortissement pour le collisionneur de roue

  • Distance de suspension - Extension maximale le long de l'axe Y dans l'espace local

  • Force app distance de point - Le point où les forces seront appliquées,

  • Centre - Centre du collisionneur de roue dans l'espace local

Ressort de suspension

  • Spring - la vitesse à laquelle la roue tente de revenir à la position cible

  • Amortisseur - Une valeur plus grande amortit davantage la vitesse et la suspension se déplace plus lentement

  • Position cible - la valeur par défaut est 0,5, à 0 la suspension est expirée, à 1 elle est en extension complète

  • Frottement avant / latéral - comment le pneu se comporte lorsqu'il roule en avant ou sur le côté

Exemple


Collisionneur de maille

Un collisionneur basé sur un actif maillé. Collisionneurs à mailles non convexes et convexes

Propriétés

  • Is Trigger - Si coché, le Box Collider ignore la physique et devient un collisionneur de déclenchement

  • Material - Une référence, si spécifiée, au matériau physique du Box Collider

  • Mesh - Une référence au maillage sur lequel le Collider est basé

  • Convexes - Les collisionneurs de maillage convexes sont limités à 255 polygones - si activé, ce collisionneur peut entrer en collision avec d'autres collisionneurs de maillage

Exemple


Si vous appliquez plusieurs collisionneurs à un objet GameObject, nous l'appelons un collisionneur composé. entrer la description de l'image ici

Collisionneur de roue

Le collisionneur de roues à l'intérieur de l'unité est construit sur le collisionneur de roues PhysX de Nvidia et partage donc de nombreuses propriétés similaires. Techniquement, l'unité est un programme "sans unité", mais pour que tout soit logique, certaines unités standard sont nécessaires.

Propriétés de base

  • Masse - le poids de la roue en kilogrammes, il est utilisé pour le moment de la roue et le moment de la rotation.
  • Rayon - en mètres, le rayon du collisionneur.
  • Wheel Damping Rate (Taux d'amortissement de la roue) - Règle la sensibilité des roues au couple appliqué.
  • Distance de suspension - Distance totale en mètres parcourue par la roue
  • Force App Point Distance - Où est la force de la suspension appliquée au corps rigide parent
  • Centre - La position centrale de la roue

Paramètres de suspension

  • Spring - C'est la constante de printemps, K, en newtons / mètre dans l'équation:

Force = constante de printemps * distance

Un bon point de départ pour cette valeur doit être la masse totale de votre véhicule, divisée par le nombre de roues, multipliée par un nombre compris entre 50 et 100. Par exemple, si vous avez une voiture de 2 000 kg à 4 roues, chaque roue devra soutenir 500 kg. Multipliez cela par 75, et votre constante de printemps devrait être 37 500 Newtons / mètre.

  • Amortisseur - l'équivalent d'un amortisseur dans une voiture. Des taux plus élevés rendent le suspense "plus rigide" et les taux inférieurs le rendent "plus doux" et plus susceptible d'osciller.
    Je ne connais pas les unités ou l'équation pour cela, mais je pense que cela concerne une équation de fréquence en physique.

Paramètres de frottement latéral

La courbe de frottement à l'unité a une valeur de glissement déterminée par le glissement de la roue (en m / s) par rapport à la position souhaitée par rapport à la position réelle.

  • Extremum Slip - C'est la quantité maximale (en m / s) qu'une roue peut glisser avant de perdre de la traction

  • Valeur extrême - C'est la quantité maximale de friction à appliquer à une roue.

Les valeurs pour Exrtremum Slip doivent être comprises entre 0,2 et 2 m / s pour la plupart des voitures réalistes. 2 m / s est d'environ 6 pieds par seconde ou 5 mph, ce qui est beaucoup de glissement. Si vous estimez que votre véhicule doit avoir une valeur supérieure à 2 m / s pour le glissement, vous devriez envisager d'augmenter la friction maximale (valeur extrême).

Max Fraction (Extremum Value) est le coefficient de frottement dans l'équation:

Force de frottement (en newtons) = coefficient de frottement * force descendante (en newtons)

Cela signifie qu'avec un coefficient de 1, vous appliquez toute la force de la voiture + la suspension opposée à la direction du glissement. Dans les applications du monde réel, les valeurs supérieures à 1 sont rares, mais pas impossibles. Pour un pneu sur asphalte sec, les valeurs comprises entre 0,7 et 0,9 sont réalistes, donc la valeur par défaut de 1,0 est préférable.

Cette valeur ne doit pas dépasser, de manière réaliste, 2,5, car un comportement étrange se produira. Par exemple, vous commencez à tourner à droite, mais parce que cette valeur est si élevée, une force importante est appliquée en face de votre direction, et vous commencez à glisser dans le virage au lieu de partir.

Si vous avez maximisé les deux valeurs, vous devriez alors commencer à augmenter le glissement asymptote et la valeur. Asymptote Slip doit être compris entre 0,5 et 2 m / s et définit le coefficient de frottement pour toute valeur de glissement au-delà du glissement Asymptote. Si vous trouvez que votre véhicule se comporte bien jusqu'à ce qu'il se casse, à quel point il agit comme s'il était sur la glace, vous devriez augmenter la valeur Asymptote. Si vous trouvez que votre véhicule ne peut pas dériver, vous devez baisser la valeur.

Friction Forward

Le frottement vers l'avant est identique au frottement latéral, sauf que cela définit la force de traction de la roue dans le sens du mouvement. Si les valeurs sont trop basses, vos véhicules feront des épuisements et essaieront les pneus avant de progresser lentement. Si elle est trop élevée, votre véhicule peut avoir tendance à essayer de faire un retournement grave, voire pire.

Notes complémentaires

Ne vous attendez pas à pouvoir créer un clone GTA ou un autre clone de course en ajustant simplement ces valeurs. Dans la plupart des jeux de conduite, ces valeurs sont constamment modifiées dans le script pour différentes vitesses, terrains et valeurs de virage. De plus, si vous appliquez simplement un couple constant aux collisionneurs de roue lorsque vous appuyez sur une touche, votre jeu ne se comportera pas de manière réaliste. Dans la réalité, les voitures ont des courbes de couple et des transmissions pour modifier le couple appliqué aux roues.

Pour de meilleurs résultats, vous devez régler ces valeurs jusqu'à ce que vous obteniez une réponse satisfaisante de la part de la voiture, puis modifier le couple de la roue, l'angle de rotation maximal et les valeurs de frottement dans le script.

Vous trouverez plus d'informations sur les collisionneurs de roues dans la documentation de Nvidia: http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/Vehicles.html

Déclencheurs collisionneurs

Les méthodes

  • OnTriggerEnter()
  • OnTriggerStay()
  • OnTriggerExit()

Vous pouvez créer un collisionneur dans un déclencheur afin d'utiliser les OnTriggerEnter() , OnTriggerStay() et OnTriggerExit() . Un collisionneur de déclenchement ne réagira pas physiquement aux collisions, les autres GameObjects le traversent simplement. Ils sont utiles pour détecter lorsqu'un autre objet GameObject se trouve dans une zone donnée ou non, par exemple, lors de la collecte d'un élément, nous pouvons être en mesure de le parcourir, mais détecter quand cela se produit.

Script de déclenchement du collisionneur

Exemple

La méthode ci-dessous est un exemple d'écouteur de déclenchement qui détecte lorsqu'un autre collisionneur entre dans le collisionneur d'un objet GameObject (tel qu'un lecteur). Les méthodes de déclenchement peuvent être ajoutées à tout script affecté à un objet GameObject.

void OnTriggerEnter(Collider other)
{
    //Check collider for specific properties (Such as tag=item or has component=item)
}


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow