Menu
CoddyTech

Dürtüyle Zıplama

Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 3 / 71.

AddForce ikinci bir argüman alır: vektörün nasıl kullanılacağını belirten bir ForceMode. Bu argümanı belirtmezsen ForceMode.Force kullanılır; bu, bir fizik adımı boyunca süren bir itmedir, bu yüzden adım adım eklenmesi gerekir. Bir tekme, sıçrama ya da patlama tek seferde gerçekleşir; bu da ForceMode.Impulse modudur: tüm itme bir kerede uygulanır ve hız, darbenin kütleye bölünmesi kadar değişir.

Bu futbol topuna (0.5 kg) tıklandığında tekme atılır. Bir sonraki fizik adımında hızı (0, 2, 6) / 0.5 = (0, 4, 12) m/s kadar artar; sonrasında yer çekimi ve çim devreye girer:

void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        rb.AddForce(new Vector3(0, 2, 6), ForceMode.Impulse);
    }
}

Tek seferlik bir itme, tıklamanın gerçekleştiği karede Update() içinden çağrılabilir: Unity bunu saklar ve bir sonraki fizik adımında uygular. Dört mod iki açıdan farklılık gösterir: itme tek seferde mi yoksa bir adım boyunca mı uygulanır ve kütle hesaba katılır mı:

  • Force: bir adım boyunca uygulanır, kütleye bölünür (motorlar, rüzgâr).
  • Acceleration: bir adım boyunca uygulanır, kütle hesaba katılmaz.
  • Impulse: tek seferde uygulanır, kütleye bölünür (tekme, sıçrama).
  • VelocityChange: tek seferde uygulanır, kütle hesaba katılmaz: vektör doğrudan hıza eklenir.
challenge icon

Görev

Kolay

Boşluk tuşuna her basışta kurbağanın bir kez zıplamasını sağla.

  1. Yorum satırının altına if (Input.GetKeyDown(KeyCode.Space)) yaz.
  2. İçinde rb.AddForce(Vector3.up * jumpImpulse, ForceMode.Impulse); çağrısını yap; böylece kurbağanın 2 kg ağırlığı hesaba katılır.

“Oyna” düğmesine bas ve Boşluk tuşuna bas: kurbağa yukarı zıplar ve geri düşer. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class FrogJump : MonoBehaviour
{
    public float jumpImpulse = 10f;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void Update()
    {
        // Space: jumpImpulse kadar tek bir yukarı yönlü itiş
    }
}

Fizik ve Oynanış bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground