gtag('config', 'UA-180278623-1'); Unity 3D Components-SCRIPT İLE COMPONENT KONTROLÜ - Bilginiz Dahilinde

Ads Top

Unity 3D Components-SCRIPT İLE COMPONENT KONTROLÜ

 SCRIPT İLE COMPONENT KONTROLÜ:

Nokta (.) işareti yazılımda bağlantı kurmak için kullanılır. Birbirleri ile bağlantılı objeler kurulur bu sayede. Classlar arası bağlantı kurulur.

GameObject değişkeni = Hiyerarşi menüsünde gördüğümüz her şey birer oyun objesidir. Bu oyun objelerini içinde barındıran değişkene ise GameObject değişkeni denilir.

İlk olarak;

public class Control : MonoBehaviour

{

   public GameObject mesh;

İlk olarak bu kodu yazıyoruz. Bu kod sayesinde editörde script gözükecek.

private void Start()

    {

    print (mesh) ;

    Bu kodu yazarsak editörde mesh’in içine sürükleyip attığımız objenin isminin yazdırır.

     }

}

Ardından editöre gelip baktığımızda control objesinin içindeki scripte Mesh adlı bir başlık çıkıyor ve içerisinde None (Game Object) yazıyor. Bu kısıma Hierarşi menüsünden componentini kontrol etmek istediğimiz bir objeyi sürüklüyoruz. Örneğin ben burada Cube1 objesinin componentlerine ulaşmak istediğim için cube1 i sürüklüyorum.

SCRIPT İLE COMPONENTE ULAŞMAK
public class Control : MonoBehaviour
{
   public GameObject mesh;
 
    private void Start()
    {

 mesh.GetComponent<Light>().intensity = 100.0f;
    İlk olarak componentine  erişmek istediğimiz objenin  adını yazıyoruz.            
    Ardından . koyup  GetComponent <  >( ) yapıyoruz ve daha sonra  < > bu işaretlerin arasına hangi componenti değiştirmek istiyorsak onun ismini yazıyoruz.
   Daha sonra . koyup    componentte hangi özelliği  değiştirmek istiyorsak onun adını yazıp istediğimiz değere eşitliyoruz ve ardından ; koyarak kodu bitiriyoruz.                                                                                                                                }
}
public class Control : MonoBehaviour
{
   public GameObject mesh;
    private void Start()
    {
        GetComponent<Light>().intensity = 100.0f;
   
Eğer ki başına mesh yazmazsak erişmek istediğimiz componenti
control scriptini atttığımız obje içinde arar ve bulamadığında hata verir.
Başına bir şey yazmadan yandaki gibi yazarsak;
This.GetComponent<Light>().intensity = 100.0f;
Şeklinde başında this olarak düşünür.
     
            print (this);
Bu kodu yazdırdığımızda ise control scriptini hangi objenin içine attıysak o objenin ismini ardından parantez içinde bu scriptin ismini yazdırır. Önemli bir not ise bu kodu yukarıdaki getcomponent kodu ile direkt kullandığında hata verir Getcomponent ‘in başına this yazmayı unutma!
  }
}
public class Control : MonoBehaviour
{
    private void Start()
    {
        this.GetComponent<Light>().intensity = 100.0f;
        print(this);
     Böyle yaptığımızda public GameObject mesh ; koduna gerek yok çünkü scripti attığımız  objenin içerisinde arıyor componenti bu durumda
     
     Ayrıca başına this yazmasak bile program başında this var gibi düşünüyor.
     }
}
 


Hiç yorum yok:

Blogger tarafından desteklenmektedir.