Menu
CoddyTech

Bileşen Ekle

Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 46 / 85.

gameObject.AddComponent<T>(), oyun çalışırken nesneye T türünde yeni bir bileşen ekler ve sonraki satırlarda ayarlayabilmen için bileşeni döndürür. Bileşen GameObject'e aittir; bir betik ona gameObject üzerinden erişir. Bu kamp ateşi, oyun başladığında kendine sıcak turuncu bir ışık verir:

void Start()
{
    Light glow = gameObject.AddComponent<Light>();
    glow.color = new Color(1f, 0.5f, 0f);
    glow.intensity = 2f;
}

Bu şekilde eklenen bir bileşen, oyun çalıştığı sürece kalır. “Oyna”yı durdurduğunda nesne, Light bileşeni olmadan sahnenin kaydettiği hâline döner. Kendi betiklerin de bileşendir: gameObject.AddComponent<Spinner>(), diğer betikler gibi çalışmaya başlayan bir Spinner ekler.

Çoğu bileşen birden fazla kez eklenebilir, ancak bazıları eklenemez: bir nesne en fazla bir Rigidbody barındırabilir ve ikinci bir tane eklemeye çalışırsan bunun yerine Console'da Can't add component 'Rigidbody' uyarısı alırsın. Birden fazla kez çalışabilecek kod, bileşeni eklemeden önce nesnenin bu bileşene zaten sahip olup olmadığını kontrol eder.

challenge icon

Görev

Orta

Boşluk tuşuna basınca palmiye ağacı sallanır ve hindistan cevizi düşer.

  1. Update() içinde, Input.GetKeyDown(KeyCode.Space) olduğunda gameObject.AddComponent<Rigidbody>() ile bir Rigidbody ekle.
  2. Yalnızca hindistan cevizinde henüz yoksa ekle: !TryGetComponent(out Rigidbody rb). Boşluk tuşuna ikinci kez basıldığında ikinci bir Rigidbody eklenmez.

“Oyna” düğmesine bas ve Boşluk tuşuna bas: hindistan cevizi kuma düşer. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class CoconutDrop : MonoBehaviour
{
    void Update()
    {
        // Space: Hindistan cevizinde henüz bir Rigidbody yoksa ekle
    }
}

Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground