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şenivoid 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.
← Önceki yazı
Unity'de OnTriggerEnter() Metodu: Tetikleyiciye Giriş ve Çıkış
Sonraki yazı →
Unity ile Oyunlardan Reklam Geliri Elde Etmenin 7 Yolu (2026
🧠 Ders Sonu Değerlendirme Testi
Dersi tamamladıktan sonra bilgilerinizi test edin ve ekstra puanlar kazanın.
Yorumlar (0)
İlk yorumu siz yapın!