Skok z impulsem
Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 3 z 71.
AddForce przyjmuje drugi argument, ForceMode, który określa, jak użyć wektora. Jeśli go nie podasz, użyty zostanie ForceMode.Force — pchnięcie trwające jeden krok fizyki, więc trzeba je dodawać krok po kroku. Kopnięcie, skok lub eksplozja następują jednorazowo — to właśnie ForceMode.Impulse: całe pchnięcie naraz, zmieniające prędkość o impuls podzielony przez masę.
Ta piłka nożna (0.5 kg) jest kopana po kliknięciu. Jej prędkość wzrasta o (0, 2, 6) / 0.5 = (0, 4, 12) m/s w następnym kroku fizyki, a potem działają już grawitacja i trawa:
void Update()
{
if (Input.GetMouseButtonDown(0))
{
rb.AddForce(new Vector3(0, 2, 6), ForceMode.Impulse);
}
}Jednorazowe pchnięcie można wywołać z Update() w klatce, w której nastąpiło kliknięcie: Unity zachowuje je i stosuje w następnym kroku fizyki. Cztery tryby różnią się pod dwoma względami: czy działają jednorazowo, czy przez jeden krok, oraz czy uwzględniają masę:
Force: przez jeden krok, z podziałem przez masę (silniki, wiatr).Acceleration: przez jeden krok, masa jest pomijana.Impulse: jednorazowo, z podziałem przez masę (kopnięcia, skoki).VelocityChange: jednorazowo, masa jest pomijana: wektor jest bezpośrednio dodawany do prędkości.
Wyzwanie
ŁatwySpraw, aby żaba skakała raz po każdym naciśnięciu spacji.
- Poniżej komentarza wpisz
if (Input.GetKeyDown(KeyCode.Space)). - Wewnątrz wywołaj
rb.AddForce(Vector3.up * jumpImpulse, ForceMode.Impulse);, aby żaba ważąca 2 kg została wprawiona w ruch.
Naciśnij „Graj” i naciśnij spację: żaba podskoczy i opadnie z powrotem. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class FrogJump : MonoBehaviour
{
public float jumpImpulse = 10f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
// Space: pojedynczy impuls w górę o wartości jumpImpulse
}
}
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