Menu
CoddyTech

Bir Bileşen Ekle

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

gameObject.AddComponent<T>(), oyun çalışırken nesneye T türünde yeni bir bileşen ekler ve sonraki satırlarda ayarlayabilmen için bu bileşeni döndürür. GameObject'e aittir ve 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. Play modunu durdurduğunda nesne, sahnede kaydedilmiş hâline döner ve Light bileşeni olmaz. Kendi betiklerin de bileşendir: gameObject.AddComponent<Spinner>(), diğer tüm 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 istenmesi, bunun yerine Console'da bir hataya yol açar. Birden fazla kez çalışabilecek kod, bileşeni eklemeden önce nesnede zaten olup olmadığını kontrol eder.

challenge icon

Görev

Orta

Hindistan cevizi palmiye ağacında asılı durur. Space tuşuna basmak ağacı sallar: hindistan cevizine bir Rigidbody eklenir, böylece yer çekimi onu çeker ve kuma düşer.

  • İlk Space tuşuna basılmadan önce hindistan cevizi bulunduğu yerde asılı durur.
  • Space, yalnızca hindistan cevizinde henüz Rigidbody yoksa ekler; bu nedenle sonraki basışlarda hiçbir şey istenmez.

Play'e bas, Space tuşuna bas, ardından Check'e bas.

Kendin dene

using UnityEngine;

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

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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