Unity Eğitim
Dersler
Forum Sınav Merkezi Premium 💎
C# Dersleri

Unity'de Rigidbody2D.velocity ile Nesne Hareketlerini Kontrol Etme

Paylaşan: Unity Eğitim 13 September 2025 4 dakika okuma 124 görüntülenme

Unity oyun motorunda fiziksel nesnelerin hareketini kontrol etmek için en yaygın kullanılan yöntemlerden biri Rigidbody2D.velocity özelliğidir. Bu özellik, bir Rigidbody2D bileşeni taşıyan oyun nesnesinin anlık hız vektörünü temsil eder. Bu rehberde, Rigidbody2D.velocity'nin nasıl kullanılacağını, hız vektörlerinin nasıl manipüle edileceğini ve bununla ilgili bazı ipuçlarını detaylı bir şekilde ele alacağız.

Rigidbody2D Nedir?


Rigidbody2D, Unity'de 2 boyutlu fizik simülasyonuna tabi tutulacak nesnelere eklenen bir bileşendir. Bu bileşen, nesneye kütle, sürtünme ve diğer fiziksel özellikler kazandırır. Rigidbody2D olmadan, bir nesnenin hareketini doğrudan Transform bileşeni üzerinden değiştirmek zorunda kalırsınız, bu da gerçekçi fiziksel etkileşimler oluşturmayı zorlaştırır. Rigidbody2D sayesinde, yer çekimi, çarpışmalar ve kuvvetler gibi fiziksel olaylar otomatik olarak hesaplanır.

Rigidbody2D.velocity Özelliği


Rigidbody2D.velocity, Vector2 tipinde bir özelliktir ve nesnenin anlık hızını temsil eder. Bu vektör, nesnenin hareket yönünü ve hızını belirtir. X bileşeni yatay, Y bileşeni ise dikey hızı gösterir. velocity özelliğini değiştirerek nesnenin hareketini anında kontrol edebilirsiniz.

velocity'nin Doğrudan Ayarlanması


Nesnenin hızını doğrudan değiştirmek için velocity özelliğine yeni bir Vector2 değeri atayabilirsiniz. Örneğin, nesneyi (10, 5) hız vektörü ile hareket ettirmek için şu kodu kullanabilirsiniz:
Rigidbody2D rb; // Rigidbody2D bileşeni

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

void Update() {
rb.velocity = new Vector2(10f, 5f);
}


Bu kod, nesnenin her karede (10, 5) hız vektörü ile hareket etmesini sağlar. X ekseni boyunca sağa doğru 10 birim, Y ekseni boyunca yukarı doğru 5 birim hareket eder.

Hıza Kuvvet Ekleme


velocity'yi doğrudan değiştirmek yerine, AddForce() metodunu kullanarak nesneye kuvvet uygulayabilirsiniz. Bu, daha gerçekçi bir hareket hissi yaratır. AddForce() metodu, nesnenin kütlesini hesaba katarak hızını kademeli olarak değiştirir.
void Update() {
rb.AddForce(new Vector2(10f, 0f));
}

Bu kod, nesneye yatay yönde sürekli bir kuvvet uygular. Nesnenin kütlesi ne kadar büyükse, hızındaki değişim o kadar yavaş olur.

Sürtünme ve Hızın Azalması


Gerçek dünyadaki gibi, oyun nesnelerinin de bir sürtünme katsayısı vardır. Sürtünme, nesnenin hızını kademeli olarak azaltır. Rigidbody2D'nin drag özelliğini ayarlayarak sürtünme miktarını kontrol edebilirsiniz. Yüksek drag değeri, daha hızlı bir yavaşlama sağlar.
rb.drag = 5f; // Yüksek sürtünme

Örnek Senaryolar


Topu Atma


Bir topu belirli bir hız ve açıyla atmak için velocity'yi kullanabilirsiniz:
float atışHızı = 10f;
float atışAçı = 45f;
Vector2 atışVektörü = new Vector2(Mathf.Cos(atışAçı * Mathf.Deg2Rad) * atışHızı, Mathf.Sin(atışAçı * Mathf.Deg2Rad) * atışHızı);
rb.velocity = atışVektörü;

Karakter Hareketi


Bir platform oyununda karakterin hareketini kontrol etmek için velocity'yi kullanabilirsiniz. Yatay hareket için velocity.x değerini, atlama için velocity.y değerini ayarlayabilirsiniz.
float yatayHız = Input.GetAxis("Horizontal") * hız; 
rb.velocity = new Vector2(yatayHız, rb.velocity.y);

Sonuç


Rigidbody2D.velocity, Unity'de 2 boyutlu fizik tabanlı oyunlar oluştururken nesnelerin hareketini kontrol etmenin güçlü ve esnek bir yoludur. Bu rehberde ele aldığımız örnekler ve teknikler, oyunlarınıza gerçekçi ve etkileyici hareketler eklemenize yardımcı olacaktır. Deney yaparak ve farklı teknikleri birleştirerek kendi oyun mekaniklerinizi oluşturabilirsiniz.

 

🧠 Ders Sonu Değerlendirme Testi

Dersi tamamladıktan sonra bilgilerinizi test edin ve ekstra puanlar kazanın.

🔥 +50 XP Ödül
🔒

Sınava Katılmak İçin Giriş Yapın

Bu ders sonu testini çözebilmek, bilginizi test edip **+50 XP** kazanmak ve **Sınav Şampiyonu** rozetinin kilidini açmak için üye girişi yapmalısınız.

Yorumlar (0)

Yorum yazabilmek ve derslere katkıda bulunabilmek için giriş yapmalısınız.

İlk yorumu siz yapın!