Menu
CoddyTech

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.

challenge icon

Sfida

Facile

La 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 weight e 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
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fisica e gameplay