Herkese merhaba bu yazıda oyunlarda ki obje etkileşimlerini kontrol etmek için kullanacağımız trigger fonksiyonundan ve bu fonksiyonu buton yardımıyla nasıl kullanacağımızdan bahsedeceğim böylelikle buton kullanımınıda göstermiş olacağım.Benim örneğimde basit olarak 2 obje var ve bir obje diğer objeyece atış yapıyor. Öncelikle bu etkileşimi sağlayabilmek için bir fonksiyon yazmamız gerek bu fonksiyonu hedef objeye veya hedefe giden objeye yazabilirsiniz ben hedef objeye yazacağım bu fonksiyonu. Fonksiyonda etiketlere göre işlem yaptıracağız ve ben etiket değerini hedefe değecek olan objeye atayacağım şu şekilde. Etiket adınız “zehir” olarak belirledim.
Fonksiyonumuz aynen şu şekilde olmalı;
void OnTriggerEnter(Collider other) { if(other.tag=="zehir")//hedefe değen objeye atadığımız etiket { Destroy(this.gameObject);//hedef obje yok ediliyor Destroy(other.gameObject);//hedefe değen obje yok ediliyor } }
Fonksiyon şekli aynen bu şekilde “OnTriggerEnter” olmalı ve collider değişken tipi ile de temas edilen objelerin bilgilerine ulaşıp oradan yapmak istediğimiz işlemleri yaptıracağız. Bu fonksiyonu yazdıktan sonra hedef objemizin üzerine sürükleyip bırakalım.
Burada önemli olan noktalar ise şunlar;
Trigger uygulayacağımız objelerde rigidbody ve collider component’leri olmalıdır çünkü oyun moturu arka planda bu çarpışmalar için hesaplamalar yapacaktır.
Diğer önemli nokta ise temas edecek objelerden herhangi birinde yukarıda gösterdiğim trigger değeri işaretli olmalıdır.
Şimdi hedefe ilerleyecek olan objemizin koduna bakalım burada x ekseninde sürekli bir artış sağlayarak objenin hareketlenmesi sağlandı. Bu kodu da hedefe temas edecek diğer obejnin içine yazıyoruz.
<br data-mce-bogus="1"> void Update () { transform.Translate(new Vector3(5 * Time.deltaTime, 0,0)); }
Şimdi ise ana işlemlerin olacağı “koyun” gameobject’ine bakalım;
GameObject atilacakObje;//atilacak olan objeyi bulmak için bir değişken tanımlıyoruz void Start() { atilacakObje = GameObject.Find("atis");//oyun ilk açıldığında atılacak obej ismine göre bulunuyor } public void firlat()//butona bastığımız zaman çalışacak fonksiyon { Instantiate(atilacakObje, transform.position,Quaternion.identity);//atılacak objenin nereden ve hangi doğrultuda fırlatılacağı }
Bu kod da ise açıklama satırı ile yanlarında belirttim Instatiate fonksiyonu yine önemli fonksiyonlardandır. Bu fonksiyonun amacı belirlenen noktadan belirlenen objenin oluşmasını sağlamaktır ilk parametresi oluşacak objeyi ikinci parametre bu obje nerede hangi koordinatlarda oluşsun son parametre ise oluşacak objenin doğrultusu diye düşünüyorum(ben hep böyle kullandım).
Şimdi buton kullanımına da bakarak fırlat fonksiyonunu çağıralım ve objeleri çarpıştıralım.
İlk öncelikle yukarıda görüldüğü gibi bir buton ekliyoruz buton canvas ile birlikte geliyor.
Daha sonra üstte gösterdiğim gibi butonu seçiyoruz ve butonu görünmez yapıyoruz.
Daha sonra butonun on click kısmına gelip artık çalıştırmak istediğimiz sınıf ve fonskiyonu seçiyoruz.
Ben koyun gameobject’ini seçiyorum.
Daha sonra da koyun sınıfından fırlat fonksiyonunu seçtim(firlat fonksiyonu public olmalıdır yoksa listede göremeyiz).
Buraya kadar herşeyi yaptıysak butona bastığımız zaman hedefe bir obje gönderilecek ve hedefe değerse hem gönderilen hem de değen obje yok olacak.
Bu basit yazının sonunda ekrana buton koyduğumuz için eğer bu projeyi build alırsak dokunmatik cihazlarda da çalışacaktır burada temel amacım buton nasıl kullanılır, trigger fonksiyonu nasıl kullanılır bunlardan basitçe bahsetmeye çalıştım, herkese iyi çalışmalar.