AddForce ile kuvvet
- Oyun Geliştirme kursu
- Başlangıç
- Ders 51/83
- 4 dk
Rigidbody.AddForce ile bir nesneye kuvvet uygulamayı öğrenirsin.
AddForce ile kuvvet uygulama
Fizik temelli nesneleri hareket ettirmek için Transform pozisyonunu doğrudan değiştirmek yerine Rigidbody.AddForce metodu kullanılır. Bu metot nesneye yön ve büyüklük içeren bir vektör uygular.
Rigidbody rb = GetComponent<Rigidbody>();
// Nesneyi yukarı doğru fırlat
rb.AddForce(Vector3.up * 10f);AddForce ile hareket eden nesneler diğer objelerle çarpıştığında doğal bir fiziksel tepki verir.
ForceMode çeşitleri
ForceMode.Force zamana yayılan sürekli itişler için kullanılır (örneğin roket motoru). ForceMode.Impulse ise ani vuruş ve zıplama efektleri için idealdir.
// Tek seferlik zıplama darbesi
rb.AddForce(Vector3.up * 5f, ForceMode.Impulse);Sürekli kuvvetler genellikle FixedUpdate içinde çağrılırken, anlık impulselar tek bir karede bir defa tetiklenir.
Uygulama Uygulanan kuvveti yazdır
forceMode değişkenine "Impulse", magnitude değişkenine 10 değerini ata. Ekrana Applied Force: 10 | Mode: Impulse yazdır.
Başlangıç kodu
using System;
class Program
{
static void Main()
{
// forceMode ve magnitude değerlerini tanımlayıp yazdır
}
}Örnek çözüm
using System;
class Program
{
static void Main()
{
string forceMode = "Impulse";
int magnitude = 10;
Console.WriteLine("Applied Force: " + magnitude + " | Mode: " + forceMode);
}
}Beklenen çıktı
Applied Force: 10 | Mode: Impulse
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir nesneye anlık zıplama veya patlama etkisi vermek için hangi ForceMode türü uygundur?
- ForceMode.Impulse Doğru cevap
- ForceMode.Acceleration
- ForceMode.VelocityChange
- ForceMode.Continuous
Açıklama: ForceMode.Impulse, nesnenin kütlesini hesaba katarak tek karede anlık bir darbe kuvveti uygular.
2 Impulse kuvvet modu belirle
rb.AddForce(Vector3.forward * 10f, ForceMode.____);
rb.AddForce(Vector3.forward * 10f, ForceMode.Impulse);
Açıklama: Unity'de ani darbe kuvveti uygulamak için ForceMode enum değerinden Impulse seçilir.
3 Kuvvet kavramları
| Kavram | Anlamı |
|---|---|
AddForce |
Rigidbody'ye fiziksel kuvvet uygular |
ForceMode.Impulse |
Anlık darbe kuvveti, kütleye bağlı |
ForceMode.Force |
Zaman içinde sürekli kuvvet uygular |
Vector3.up |
Yukarı yönlü birim vektör (0,1,0) |