CodeBlanks Logo Icon CodeBlanks

AddForce ile kuvvet

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

Player.cs
using System;

class Program
{
    static void Main()
    {
        // forceMode ve magnitude değerlerini tanımlayıp yazdır
    }
}

Örnek çözüm

Player.cs
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

Soru
rb.AddForce(Vector3.forward * 10f, ForceMode.____);
Cevap
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)

Başlangıç bölümündeki tüm dersler