Sauter avec une impulsion
Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 3 sur 71.
AddForce prend un deuxième argument, un ForceMode, qui indique comment utiliser le vecteur. Sans lui, tu obtiens ForceMode.Force, une poussée qui dure un pas de physique et doit donc être ajoutée pas après pas. Un coup de pied, un saut ou une explosion se produit en une seule fois : c’est ForceMode.Impulse, toute la poussée appliquée d’un coup, ce qui modifie la vitesse de la valeur de l’impulsion divisée par la masse.
Ce ballon de football (0.5 kg) est frappé au clic. Sa vitesse augmente de (0, 2, 6) / 0.5 = (0, 4, 12) m/s au pas de physique suivant, puis la gravité et l’herbe prennent le relais :
void Update()
{
if (Input.GetMouseButtonDown(0))
{
rb.AddForce(new Vector3(0, 2, 6), ForceMode.Impulse);
}
}Une poussée ponctuelle peut être déclenchée depuis Update(), à l’image du clic : Unity la conserve et l’applique au pas de physique suivant. Les quatre modes diffèrent selon deux aspects : en une seule fois ou sur un pas, et avec ou sans prise en compte de la masse :
Force: sur un pas, divisée par la masse (moteurs, vent).Acceleration: sur un pas, sans tenir compte de la masse.Impulse: en une seule fois, divisée par la masse (coups de pied, sauts).VelocityChange: en une seule fois, sans tenir compte de la masse : le vecteur est directement ajouté à la vitesse.
Défi
FacileFais sauter la grenouille une fois à chaque pression sur la barre d’espace.
- Sous le commentaire, écris
if (Input.GetKeyDown(KeyCode.Space)). - À l’intérieur, appelle
rb.AddForce(Vector3.up * jumpImpulse, ForceMode.Impulse);, pour que la grenouille compte 2 kg.
Appuie sur « Jouer » et sur la barre d’espace : la grenouille bondit et retombe. Puis clique sur « Vérifier ».
Essayez vous-même
using UnityEngine;
public class FrogJump : MonoBehaviour
{
public float jumpImpulse = 10f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
// Space : une seule impulsion vers le haut de jumpImpulse
}
}
Toutes les leçons de Physique et gameplay
1Corps rigide
Gravité et massePousser avec AddForceSauter avec une impulsionFixedUpdate pour la physiqueVitesseCorps cinématiquesRécapitulatif : plateforme de lancement4Coroutines
InvoquerInvokeRepeating, CancelInvokeVotre première coroutineBoucles dans les coroutinesArrêter les coroutinesRécapitulatif : compte à rebours7Rotation
Angles d’EulerQuaternionsRegardez dans la direction où vous vous déplacezTourner en douceurRécapitulatif : tourelle10Projet : Évasion de l’arène
L’arèneLes chasseurs2Collisions
OnCollisionEnterQu’est-ce que j’ai touché ?Se briser à l’impactRester au solRebond et frictionFormes des collidersRécapitulatif : mur destructible5Projet : Course aux pièces
La balle roulanteDes pièces à ramasser3Déclencheurs
Colliders déclencheursOnTriggerEnterObjets à ramasserLes caisses gardent le resteZones mortellesEntrée et sortieRécapitulatif : clé et porteEntraînez-vous par vous-même : Playground Unity