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.
Görev
KolayBuz 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
}
}
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
1Rigidbody
Yerçekimi ve KütleAddForce ile İtmeDürtüyle ZıplamaFizik için FixedUpdateHızKinematik CisimlerTekrar: Fırlatma Rampası2Çarpışmalar
OnCollisionEnterNeye Çarptım?Çarpınca KırılYerde DurmakSekme ve SürtünmeCollider ŞekilleriTekrar: Kırılabilir Duvar