Translate Blog

8 Ekim 2019 Salı

Unity inspector Penceresindeki Bir Özelliğe Erişmek / Change A value on Inspector With C# on UNITY

Unity inspector penceresindeki bir özelliği algoritmik olarak değiştirmek mi istiyorsunuz. C# ile kodlarken ilgili pencereye erişmenin en güzel ve performanslı yolunu aşağıda bulabilirsiniz.

Örnek olarak bir kutumuz olsun ve dokusunu değiştirmek isteyelim. Normalde dokuyu inspector penceresinde Default Materyal başlığına tıklayarak yapabiliriz. Peki bu işlemi komutla nasıl yapabiliriz?



Unity versiyonum 2019.2 bu arada. Versiyonlar çoğu konuda önemli olabiliyor. Çizim nesnelerinde Mesh Renderer özelliği hep vardır. Siz nesnenin üzerine oluşturduğunuz bir materyali bile atasanız elle okun ucundaki bölgeden değişiklik yapabilirsiniz, fakat kod ile Renderer'ın özelliği olan materyale erişerek yapmalısınız.

Kutumuza bir script ekleyelim ve kod düzenleyicimiz her ne ise onda açalım. Visual Studio kullanmanızı ve Unity kurulumu yapılırken kendisinin kurmasına izin vermenizi öneririm. Kendiniz kurduğunuzda sorun çıkabiliyor. Bu haliyle Unity kodları Visual Studio'da çok güzel gözükebiliyor.


Fare tıklaması için farklı seçenekleriniz var. mousedown, mouseup, over, exit,... şeklinde çeşitli OnMouse varyasyonları var. Bir farenin basıldığı anı kullandık bu yüzden onMouseDown listenerını açarak kodu onun içine yazdık. Bu sayede ne zaman bu nesnenin üzerine bir tıklama gelirse içindeki kodlar çalışacaktır.


"this.gameObject.GetComponent<>" betiği buradaki tüm can alıcı işleri yapmanızı sağlayacak en önemli kod diyebiliriz. Bu kod ile inspector penceresindeki her şeye erişebilirsiniz.

Şöyle düşünün Inspector penceresi tüm özelliklerin bir listesidir, siz bu elemanlara GetComponent<> komutunun okları arasında bu listedeki tüm elemanların ismini yazarak erişebilirsiniz.
this.gameObject.GetComponent<Rigidbody>
this.gameObject.GetComponent<Collider>
this.gameObject.GetComponent<Transform>
gibi komutlarla özelliklere erişip değiştirebilirsiniz.