Merhabalar bu yazımızda bize ileride kolaylık sağlaması açısından sınıflara erişmek hakkında bilgi vermeye çalışacağım.
İlk öncelikle sınıflara erişmek için ana ulaşacağımız sınıftan diğer sınıflara ulaşmak için diğer sınıflardan birer nesne tanımlamalıyız. Bu sınıflara ulaşmak için kodları sahnedeki birer objenin üstüne atmalıyız. Daha sonra kodlara ulaşmak için ilk önce sahnede kodu attığımız objeyi bulup daha sonra bulduğumuz objenin içindeki kodlara ulaşmış olacağız.
Benim göstereceğim örnekte giriş nesnesi olarak kullandığımız inputfield dan aldığımız stringe göre sahnede bulunan farklı renklerdeki küpleri döndüreceğiz.
İlk öncelikle erişeceğimiz sınıfın içeriğine bakalım;
using UnityEngine; using System.Collections; public class kirmizi : MonoBehaviour { public bool kontrol=false;//en başta objenin hareketsiz kalması için void Update () { if (kontrol == true) //kontrol sınıfından erişerek burayı aktif yapıyoruz { transform.Rotate (new Vector3(0,2,0));//onay gelen obejeyi dönderiyoruz } } }
3 objeyi döndüreceğiz hepsinin içeriği aynı olduğu için burada sadece tekini gösteriyorum.
Burada erişeceğimiz değişken bool (yani true ya da false) olan kontrol değişkenine erişeceğiz ve true gönderdiğimiz anda obje dönmüş olacak.
Şimdi ana sınıfımız olan kontrol sınıfına bakalım;
using UnityEngine; using System.Collections; using UnityEngine.UI; public class kontrol : MonoBehaviour { public InputField giris; kirmizi kirmiziObje;//diğer sınıflara erişmek için sınıflardan nesne tanımlıyoruz mavi maviObje; yesil yesilObje; void Start () { kirmiziObje = GameObject.Find ("kirmiziObje").GetComponent<kirmizi>();//uygulama ilk açıldığında sahnede bulunan objeleri buluyoruz maviObje = GameObject.Find ("maviObje").GetComponent<mavi> ();//bulunan nesnlerin içeriklerine erişiyoruz yesilObje = GameObject.Find ("yesilObje").GetComponent<yesil> (); } public void gonder() { if (giris.text.Equals("kirmizi")) //sahnede bulunan giriş elemanı ile giriş yapıp { //verilen stringe göre diğer sınıflara erişip //verilen stringe göre objeyi dönderiyoruz kirmiziObje.kontrol = true;//girilen objeyi dönderiyoruz maviObje.kontrol = false; //asıl obje dönerken diğerlerini durduruyoruz yesilObje.kontrol = false; } if(giris.text.Equals("mavi")) { maviObje.kontrol = true; kirmiziObje.kontrol = false; yesilObje.kontrol = false; } if(giris.text.Equals("yesil")) { yesilObje.kontrol = true; kirmiziObje.kontrol = false; maviObje.kontrol = false; } } }
Burada ilk önce erişeceğimiz sınıflardan nesneler türetiyoruz ve ulaşacağımız objeleri sahnede buluyoruz. Objeleri bulduktan sonra girdiğimiz değerlere göre diğer sınıflara true değerini göndererek seçilen objenin dönmesini sağlıyoruz. Misal kirmizi yazarsak inputField a kırmızı obje dönecek diğerleri duracaktır gibi.
Sonuç;
Tabi burada mühim olan 3 tane küpü girdiğimiz değere göre çevirmek değil büyük projelerde neseye yönelik olarak çalışmak işleri epey kolaylaştıracaktır misal oyunlarda karakter yaparken karakterin tüm özelliklerini tek kod bloğu içerisinde yapmak akıllıca olamayacaktır karakterin her özelliğini ayrı sınıfta yazıp tek bir sınıftan diğer sınıfları kontrol etmek şüphesiz daha iyi olacaktır.
Bir sonraki yazıda görüşmek üzere.