Menu
CoddyTech

Skok z impulsem

Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 3 z 63.

AddForce przyjmuje drugi argument, ForceMode, który określa, jak użyć wektora. Jeśli go nie podasz, otrzymasz ForceMode.Force — pchnięcie działające przez jeden krok fizyki, więc trzeba je dodawać krok po kroku. Kopnięcie, skok lub wybuch następują jednorazowo — odpowiada za to 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ść zwiększa się o (0, 2, 6) / 0.5 = (0, 4, 12) m/s w następnym kroku fizyki, a potem działają na nią 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 uwzględnieniem masy (silniki, wiatr).
  • Acceleration: przez jeden krok, bez uwzględniania masy.
  • Impulse: jednorazowo, z uwzględnieniem masy (kopnięcia, skoki).
  • VelocityChange: jednorazowo, bez uwzględniania masy: wektor jest bezpośrednio dodawany do prędkości.
challenge icon

Wyzwanie

Łatwy

Spraw, by żaba skakała. Każde naciśnięcie klawisza spacji daje jej jedno pchnięcie w górę o wartości jumpImpulse (10 w Inspectorze). Żaba waży 2 kg, a skok musi uwzględniać jej masę: cięższa żaba skacze niżej.

Przytrzymanie klawisza spacji nadal oznacza tylko jeden skok. Naciśnij Graj i poskacz, a następnie 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: pojedyncze pchnięcie w górę o sile jumpImpulse
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Fizyka i rozgrywka