Unity’de Rigidbody ve Collider Kavramları

 

Herkese merhaba,

Bugün benim gibi oyun geliştirmeye yeni girişmiş arkadaşlara Unity’ye başlarken ilk sıralarda öğrenilmesi gereken iki kavramı olanca basitliğiyle anlatmak istedim. Boş bir proje açıp o meşhur küpü (gördüğüm tüm eğitimlerin genelinde öğretime küp eklenerek başlanıyordu :) ekledikten sonra yapılan ilk şey genelde küpe Rigidbody eklemek oluyor. Bu yüzden bununla başlayalım.

Rigidbody Nedir?

Rigidbody nedir? Bunu bu başlık altında inceleyelim. Rigidbody Unity’de bir nesneye fiziksel davranışlar kazandırmak için kullanılan bir bileşen. Bir nesneye Rigidbody eklemek, o nesnenin fizik motoru tarafından yönetilmesini sağlamak demek. Peki fizik motoru ne? Fizik motoru, oyun nesnelerinin fiziksel dünyadaki hareketlerini ve etkileşimlerini simüle ediyor. Bu da nesnenin kütle, yerçekimi, hız, kuvvet gibi fiziksel özelliklere sahip olmasını ve fizik kurallarına uygun hareket etmesini sağlar. Aynı zamanda gerçekçi hareket ve çarpışma hesaplamaları yapma olanağı sağlıyor. Yani oyunlar için çok lazım.

Rigidbody’nin Temel Özellikleri Neler?

Rigidbody’yi eklediğimizde inspector penceresinde görünen temel özelliklerini inceleyelim.

Rigidbody Inspector
  • Mass (Kütle): Nesnenin kütlesini belirler. Kütle, nesnenin kuvvetlere karşı gösterdiği direnci etkiler. Buraya yazacağımız değer nesnenin kütlesi demek olduğundan, daha yüksek kütleli nesneler, daha fazla kuvvet gerektirir.
  • Drag (Sürtünme): Nesnenin hareketine karşı olan direnç kuvvetidir. Buraya yazacağımız değer ne kadar yüksek olursa, nesne o kadar daha yavaş hareket eder.
  • Angular Drag (Açısal Sürtünme): Nesnenin dönüş hareketine karşı olan direnç kuvvetidir.
  • Use Gravity (Yerçekimi Kullan): Bu seçeneği etkinleştirmek, nesnenin yerçekimi etkisi altında kalmasını, eğer yüksekteyse oyun başlatıldığında aşağı doğru düşmesini sağlar. Düştüğünde durabileceği bir nesne bulunmuyorsa oyun sahnesinde gözden kaybolur ancak varlığı oyunun sisteminde bulunmaya devam eder.
  • Is Kinematic: Bu seçenek etkinleştirildiğinde, nesne fizik motoru tarafından etkilenmez, ancak diğer nesnelere çarptığında hareket edebilir. Kinematic nesneler genellikle programatik olarak kontrol edilir.

Rigidbody kullanarak neler yapabiliriz?

Bu başlık altında rigidbody özelliği kullanarak neler yapabiliriz, bunu inceleyelim.

  • Kuvvet ve tork uygulayarak nesneleri hareket ettirmek. Bu uygulama sayesinde nesneler daha hızlı düşebilir, düştüğünde yuvarlanma veya daha farklı tepkiler oluşabilir.
  • Nesneleri serbest düşüşe bırakmak. Zeminden daha yukarıda konumlandırılmış bir nesne oyun başlatıldığında aşağı doğru düşerek zemine çarptığında durabilir veya zeminin bir collider özelliği yok ise zemin içerisinden geçip boşlukta yolculuk etmeye devam edebilir.
  • Nesneleri çarpışma sonrası fiziksel tepkiler verecek şekilde ayarlamak. Çarpışma sonrası yok olma fonksiyonu veya herhangi bir animasyon ile efekt eklenmesi sağlanabilir.

Collider Nedir?

Unity’de ilk başlardan itibaren en çok kullanılan bir diğer özellikse collider. O da bir nesnenin fiziksel dünyadaki varlığını belirlemek için kullanılan bir bileşen. Etrafına konan 3 boyutlu çerçeve gibi denebilir. Bir nesneye Collider eklemek, o nesnenin çarpışmalara tepki verebilmesini sağlar. Collider bileşeni, nesnenin şekline bağlı olarak çeşitli türlerde olabilir. Şimdi şekillerine göre hangi türlerde olabilir, buna bakalım.

Collider Türleri Nelerdir?

  1. Box Collider: Dikdörtgen prizma şeklindeki nesneler için kullanılır. Basit kutu şekline sahiptir.
  2. Sphere Collider: Küre şeklindeki nesneler için kullanılır.
  3. Capsule Collider: Kapsül (iki yarım küre ve silindir) şeklindeki nesneler için kullanılır.
  4. Mesh Collider: Karmaşık şekilli nesneler için kullanılır. Nesnenin mesh (ağ) yapısını kullanarak çarpışma alanını oluşturur. Genellikle statik (hareketsiz) nesneler için uygundur.
  5. Terrain Collider: Arazi nesneleri için kullanılır.

Collider’ın Temel Özellikleri Nelerdir?

Collider’ı eklediğimizde inspector penceresinde görünen temel özelliklerini inceleyelim.

Collider Inspector
  • Is Trigger: Bu seçenek etkinleştirildiğinde, Collider çarpışma yerine tetikleyici olarak davranır. Diğer nesnelerle fiziksel etkileşime girmek yerine tetikleme olaylarını başlatır.
  • Material: Collider’a fiziksel özellikler eklemek için bir Physic Material kullanılır. Bu, sürtünme ve esneklik gibi özellikleri belirler.

Collider kullanarak neler yapabiliriz?

Bu başlık altında collider özelliği kullanarak neler yapabiliriz, bunu inceleyelim.

  • Nesnelerin birbirine çarpmasını ve fiziksel tepkiler vermesini sağlayabiliriz. Örneğin çarpışma olduğunda nesnelerin ayrı ayrı geri gitmesi ya da patlama efekti gibi bir animasyon çalışması.
  • Nesnelerin belirli alanlara girdiğinde tetikleyici olaylar başlatmasını sağlamak. Örneğin bir nesne diğer bir nesnenin collider alanına girdiğinde yok olmasını sağlamak gibi.

Her iki bileşeni de ayrı ayrı tanıdığımıza göre birlikte kullanımları nasıl olur, son olarak bunu inceleyelim.

Rigidbody ve Collider’ın Birlikte Kullanımı

Bir nesneye hem Rigidbody hem de Collider eklemek, nesnenin fiziksel dünyadaki etkileşimlerini tam anlamıyla yönetmemizi sağlar. Bu yönetim oyun geliştirme sürecinin çok önemli bir parçası olduğu için bu iki bileşeni öğrenmek bizi başlangıç için daha iyi bir oyun geliştiricisi yapabilir.

Rigidbody, nesnenin fiziksel hareketlerini ve kuvvetlerini yönetirken, Collider, nesnenin diğer nesnelerle çarpışmalarını ve tetikleyici olaylarını yönetir.

Örneğin, bir oyun sahnesinde bir topun yere düşmesini ve yuvarlanmasını ele alalım:

  • Topa bir Rigidbody ekleyerek onun yerçekimi etkisi altında kalmasını ve fiziksel kuvvetlerle hareket etmesini yani gerçekçi bir şekilde yuvarlanmasını sağlayabiliriz.
  • Aynı zamanda topa bir Sphere Collider ekleyerek onun diğer nesnelerle çarpışmalarını yönetir, varsa efekt veya tetiklenen başka bir olay ekleyebiliriz.

Bu şekilde, Rigidbody ve Collider bileşenleri birlikte çalışarak nesnenin fiziksel davranışlarını ve etkileşimlerini gerçekçi bir şekilde simüle eder.

Bu yazımda sizlere Rigidbody ve Collider’ın ne olduğundan bahsederek önemini anlatmaya çalıştım. Umarım faydalı olmuştur.

Herkese iyi kodlamalar.

Selin.

Hiç yorum yok: