Salta con un impulso
Fa parte della sezione Fisica e gameplay del percorso Unity di Coddy. Lezione 3 di 71.
AddForce accetta un secondo argomento, un ForceMode, che specifica come usare il vettore. Senza questo argomento, ottieni ForceMode.Force, una spinta che dura un passo di fisica, quindi deve essere aggiunta passo dopo passo. Un calcio, un salto o un'esplosione avvengono tutti in una volta, ed è questo che fa ForceMode.Impulse: l'intera spinta in un colpo solo, che modifica la velocità di una quantità pari all'impulso diviso per la massa.
Questo pallone da calcio (0.5 kg) viene calciato al clic. La sua velocità aumenta di (0, 2, 6) / 0.5 = (0, 4, 12) m/s al passo di fisica successivo, poi entrano in gioco la gravità e l'erba:
void Update()
{
if (Input.GetMouseButtonDown(0))
{
rb.AddForce(new Vector3(0, 2, 6), ForceMode.Impulse);
}
}Una spinta singola può essere richiamata da Update(), nel fotogramma del clic: Unity la conserva e la applica al passo di fisica successivo. Le quattro modalità differiscono in due aspetti: se la spinta avviene tutta in una volta o nell'arco di un passo, e se tiene conto della massa o meno:
Force: nell'arco di un passo, divisa per la massa (motori, vento).Acceleration: nell'arco di un passo, massa ignorata.Impulse: tutta in una volta, divisa per la massa (calci, salti).VelocityChange: tutta in una volta, massa ignorata: il vettore viene aggiunto direttamente alla velocità.
Sfida
FacileFai saltare la rana una volta per ogni pressione della barra spaziatrice.
- Sotto il commento, scrivi
if (Input.GetKeyDown(KeyCode.Space)). - Al suo interno, chiama
rb.AddForce(Vector3.up * jumpImpulse, ForceMode.Impulse);, così la rana pesa 2 kg.
Premi «Gioca» e premi la barra spaziatrice: la rana salta verso l’alto e ricade. Poi premi «Verifica».
Provalo tu
using UnityEngine;
public class FrogJump : MonoBehaviour
{
public float jumpImpulse = 10f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
// Space: un singolo impulso verso l'alto pari a jumpImpulse
}
}
Tutte le lezioni di Fisica e gameplay
1Corpo rigido
Gravità e massaSpingi con AddForceSalta con un impulsoFixedUpdate per la fisicaVelocitàCorpi cinematiciRiepilogo: piattaforma di lancio4Coroutine
InvokeInvokeRepeating, CancelInvokeLa tua prima coroutineCicli nelle coroutineInterrompere le coroutineRiepilogo: conto alla rovescia7Rotazione
Angoli di EuleroQuaternioniGuarda nella direzione in cui ti muoviRuota in modo fluidoRiepilogo: Torretta10Progetto: Fuga dall'arena
L'arenaCacciatori2Collisioni
OnCollisionEnterCosa ho colpito?Rompersi all'impattoRestare a terraRimbalzo e attritoForme dei ColliderRiepilogo: muro distruttibile5Progetto: Corsa alle monete
La palla rotolanteMonete da raccogliereEsercitati da solo: Playground Unity