Menu
CoddyTech

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.
challenge icon

Wyzwanie

Łatwy

Spraw, aby żaba skakała raz po każdym naciśnięciu spacji.

  1. Poniżej komentarza wpisz if (Input.GetKeyDown(KeyCode.Space)).
  2. 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

Poćwicz samodzielnie: Edytor online Unity