Menu
CoddyTech

AddForce ile İtme

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

Bir nesneye Rigidbody eklendiğinde, onu fizik hareket ettirir; bu yüzden konumunu değiştirmeyi bırakıp onun yerine itersin. rb.AddForce(force), cisme newton cinsinden bir kuvvet olan Vector3 ile itme uygular. Kuvvet hızı belirlemez: kuvveti eklemeye devam ettiğin sürece, her saniye kuvvetin kütleye bölümü kadar cismin hızını artırır. İtmeyi bırak, cisim sahip olduğu hızı korur.

Bu hovercraft'ın (2 kg) bir iticisi var: yukarı ok basılı tutulduğu sürece, thrust kuvveti onu +z yönünde ileri iter. 12 değerinde bir itiş gücüyle, her saniye 12 / 2 = 6 m/s hız kazanır:

public float thrust = 12f;
private Rigidbody rb;

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

void FixedUpdate()
{
    if (Input.GetKey(KeyCode.UpArrow))
    {
        rb.AddForce(Vector3.forward * thrust);
    }
}

Kuvvetler, Unity'nin her fizik adımından önce saniyede 50 kez çağırdığı FixedUpdate() içinde uygulanır (4. ders bunun nedenini açıklar). Satırda Time.deltaTime yoktur: AddForce kuvveti zaten adım boyunca dağıtır ve Time.deltaTime ile çarpmak itmeyi 50 kat zayıflatır. Yerde sürtünme ters yönde kuvvet uygular; bu yüzden küçük bir kuvvet ağır bir kutuyu hiç hareket ettirmeyebilir.

challenge icon

Görev

Kolay

Buz pistindeki pakın bir Rigidbody bileşeni var ve buzda sürtünme yok. Ok tuşlarıyla itin: Horizontal ekseni pakı x boyunca, Vertical ekseni ise z boyunca, push kuvvetiyle (Inspector'da 4) iter.

Yalnızca kuvvet uygulayarak itin; böylece tuşları bıraktığınızda kaymaya devam eder. Play'e basın, pakı pistte yönlendirin, ardından Check'e basın.

Kendin dene

using UnityEngine;

public class PuckPusher : MonoBehaviour
{
    public float push = 4f;
    private Rigidbody rb;

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

    void FixedUpdate()
    {
        // Diski it: Horizontal x boyunca, Vertical z boyunca
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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