Grawitacja i masa
Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 1 z 71.
Komponent Rigidbody przekazuje swój obiekt fizyce Unity, tak jak stało się to po dodaniu go w sekcji Add a Component. Od tej chwili grawitacja przyspiesza obiekt o 9.81 m/s w każdej sekundzie, a komponent Rigidbody ma ustawienia, które o tym decydują. Dwa z nich to mass, wyrażona w kilogramach (1 dla nowego komponentu Rigidbody), oraz useGravity (włączona dla nowego komponentu Rigidbody).
Masa nie zmienia szybkości spadania obiektów. Grawitacja mocniej przyciąga ciężkie ciało, ale o dokładnie tyle samo trudniej je rozpędzić, więc skrzynia o masie 1 kg i kowadło o masie 50 kg, upuszczone z tej samej wysokości, lądują w tej samej klatce. Masa ma znaczenie, gdy ciała napierają na siebie: kowadło odpycha skrzynię, a skrzynia prawie nie porusza kowadła. Ten balon imprezowy ma niewielką masę i nie podlega działaniu grawitacji, więc unosi się tam, gdzie umieściła go scena:
void Start()
{
Rigidbody rb = GetComponent<Rigidbody>();
rb.mass = 0.2f;
rb.useGravity = false;
}Gdy useGravity jest wyłączona, balon nadal ma swoją masę i nadal porusza się, gdy coś w niego uderzy: przestaje działać tylko siła grawitacji. Ustaw ją z powrotem na true, a grawitacja znów będzie przyciągać obiekt z miejsca, w którym się znajduje. W fizyce Unity nie ma też powietrza, więc pióro spada jak cegła, chyba że ustawisz dla jego komponentu Rigidbody pewną wartość tłumienia liniowego.
Wyzwanie
ŁatwyZawieś obie skrzynie, a następnie upuść je jednocześnie, naciskając spację.
- W
Start(), poniżej liniiGetComponent, ustawrb.mass = weight;irb.useGravity = false;. - W
Update(), po naciśnięciuInput.GetKeyDown(KeyCode.Space), ustawrb.useGravity = true;.
Naciśnij „Graj” i naciśnij spację: ciężki sejf i lekka skrzynka lądują jednocześnie. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class CraneLoad : MonoBehaviour
{
public float weight = 1f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
// Ustaw masę na wartość weight i wyłącz działanie grawitacji
}
void Update()
{
// Space: ponownie włącz działanie grawitacji
}
}
Wszystkie lekcje w sekcji Fizyka i rozgrywka
1Ciało sztywne
Grawitacja i masaPopychanie za pomocą AddForceSkok z impulsemFixedUpdate dla fizykiPrędkośćCiała kinematycznePowtórka: platforma startowa4Korutyny
WywoływanieInvokeRepeating i CancelInvokeTwoja pierwsza korutynaPętle w korutynachZatrzymywanie korutynPodsumowanie: odliczanie10Projekt: Ucieczka z areny
ArenaŁowcy2Kolizje
OnCollisionEnterW co uderzyłem?Rozbijanie przy zderzeniuStanie na podłożuOdbicie i tarcieKształty colliderówPodsumowanie: Zniszczalny mur5Projekt: Wyścig po monety
Tocząca się piłkaZbieranie monet3Wyzwalacze
Kolizje wyzwalająceOnTriggerEnterPrzedmioty do zebraniaSkrzynie zatrzymują resztęStrefy śmierciWejście i wyjściePodsumowanie: klucz i drzwiPoćwicz samodzielnie: Edytor online Unity