Gravità e massa
Fa parte della sezione Fisica e gameplay del percorso Unity di Coddy. Lezione 1 di 63.
Un Rigidbody affida il suo oggetto alla fisica di Unity, come ha mostrato la noce di cocco quando è caduta. Da quel momento, la gravità accelera l'oggetto di 9.81 m/s ogni secondo, e il Rigidbody ha impostazioni che determinano come. Due di queste sono mass, in chilogrammi (1 per un nuovo Rigidbody), e useGravity (attivo per un nuovo Rigidbody).
La massa non cambia la velocità con cui cadono gli oggetti. La gravità attira più forte un corpo pesante, ma è altrettanto più difficile accelerarlo, quindi una cassa da 1 kg e un'incudine da 50 kg lasciate cadere dalla stessa altezza atterrano nello stesso frame. La massa conta quando i corpi si spingono a vicenda: l'incudine spinge di lato la cassa, mentre la cassa sposta a malapena l'incudine. Questo palloncino da festa ha una massa ridotta e la gravità non lo disturba, quindi resta sospeso nel punto in cui lo ha posizionato la scena:
void Start()
{
Rigidbody rb = GetComponent<Rigidbody>();
rb.mass = 0.2f;
rb.useGravity = false;
}Con useGravity disattivato, il palloncino mantiene comunque la sua massa e si muove comunque se qualcosa lo urta: è solo la gravità a smettere di attirarlo. Riportalo a true e la gravità tornerà ad attirarlo da dovunque si trovi l'oggetto. Anche nella fisica di Unity non c'è aria, quindi una piuma cade come un mattone, a meno che tu non assegni al suo Rigidbody un po' di Smorzamento lineare.
Sfida
FacileLa gru tiene due casse sopra la banchina: una cassaforte pesante e una scatola leggera. Entrambe hanno un Rigidbody e uno script CraneLoad il cui weight viene impostato nell'Inspector (80 per la cassaforte, 2 per la scatola).
- Quando il gioco inizia, imposta la massa del Rigidbody su
weighte impedisci alla gravità di agire, così la cassa resta sospesa dov'è. - Quando premi Space, lascia che la gravità agisca di nuovo, così la cassa cade.
Premi Play, premi Space e guarda quale cassa atterra per prima, poi premi Check.
Provalo tu
using UnityEngine;
public class CraneLoad : MonoBehaviour
{
public float weight = 1f;
void Start()
{
// Imposta la massa su weight e impedisci alla gravità di agire
}
void Update()
{
// Space: lascia che la gravità agisca di nuovo
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
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 rovescia2Collisioni
OnCollisionEnterCosa ho colpito?Rompersi all'impattoRestare a terraRimbalzo e attritoForme dei ColliderRiepilogo: muro distruttibile5Progetto: Corsa alle monete
La palla rotolanteMonete da raccogliere