Unity – Çarpışma- Collider

Collider kelime anlamı Çarpıştırıcı dır. Bir nesnenin çarpıştırıcısı olmadan çarpma olayının gerçekleşmesi mümkün değildir.

Nesnelerin çarpışması için iki özellik gereklidir.

  • Her iki nesneninde collider(çarpıştırıcı) komponenti olmalıdır. Bunun için nesne seçildikten sonra properties panelinden Collider özelliği seçili yapılmalıdır. Collider componenti yoksa Add Component düğmesine basılarak seçilebilir. Edit Collider diyerek çarpışma yüzeyini belirleyebiliyoruz.
  • Çarpışan nesnelerin en az birinde Rigidbody componenti olmalıdır. İlgili nesne seçildikten sonra Add Component tıklanmalı ve sonrasında Rigidbody (sağlam vücut) seçilmelidir.

Hangi nesneye çarptığımızı nereden bileceğiz?

Çarpmayı düşündüğümüz nesnelerin özellikler (properties) sekmesinde Name alanına eşsiz bir isim verirseniz. Sonrasında kime çarptım diye sorabilirsiniz.

Çarpışma anında hangi olaylar olur?

Çarpışma anında temelde üç olay tetiklenir. Bunlardan birincisi Enter yani çarpışma başlama olayı. İkincisi …… Üçüncü olay da Exit yani çarpışmanın bitme olayıdır. Hazırlayacağınız oyunda hangisini yada hangilerini kullanacaksanız onu yazabilirsiniz.

 private void OnCollisionEnter(Collision collision) 
    { Debug.Log(collision.gameObject.name); 
    if (collision.gameObject.name=="kub1") {
         // çarpışmadan sonra olacak olaylar buraya yazılır. 
         } 
    }

collision : Kodumuzun olduğu nesnenin çarptığı nesneyi kastediyoruz. Eğer yukarıdaki kod (script) küre içinde ise ve çarptığı nesne de küp ise biz collision diyerek küpü kastetmiş oluyoruz.

Çarptığınız Nesnenin Kaybolmasını istiyorsanız

collision.gameObject.GetComponent<MeshRenderer>().enabled = false;

Çarpıştığınız Nesnenin Yok Olmasını istiyorsanız.

Destroy(collision);

Çarptığınız anda başka bir nesnenin oluşmasını istiyorsanız.

Aşağıdaki kodu yazmalıyız. Bu koddaki nesne1’in ise public olarak tanımlanıp ilgili nesnenin prefab’ının bu kodun public kısmı ile eşleştirilmesi (sürüklenip bırakılması gerekir.)

public GameObject nesne1;

GameObject olusturulan_nesne = Instantiate(nesne1, transform.position, Quaternion.identity);

İlk yorum yapan olun

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.


*