Menu
CoddyTech

Bir Bileşen Al

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

Bir GameObject, bir Transform, onu çizen bir MeshRenderer, bir çarpıştırıcı ve betikleriniz gibi bileşenleri barındırır. GetComponent<Renderer>(), aynı nesne üzerindeki bu türden bileşeni döndürür; betiğiniz de bu bileşenin ne yaptığını değiştirmek için onu kullanır. transform, Transform için kullanıma hazır bir kısayoldur; diğer tüm bileşenleri kendiniz alırsınız.

Bu küp, Space'e basıldığında kırmızıya döner. Renderer bileşenini bir kez, Start() içinde bulur ve bir alanda saklar: GetComponent her çağrıldığında nesnenin bileşenlerini arar ve sonuç değişmez.

Renderer rend;

void Start()
{
    rend = GetComponent<Renderer>();
}

void Update()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        rend.material.color = Color.red;
    }
}

rend.material, ilk kullandığınızda bu nesneye kendi materyal kopyasını verir; böylece materyali paylaşan diğer nesnelerin rengi aynı kalır. Unity bazı renkleri sizin için adlandırır; örneğin Color.red, Color.green, Color.blue, Color.yellow ve Color.gray; new Color(r, g, b) ise 0 ile 1 arasında değer alan her bir bileşenle başka herhangi bir rengi oluşturur.

challenge icon

Görev

Orta

Her tıklama sinyal lambasını bir sonraki renge geçirir: kırmızı, sarı, yeşil, sonra tekrar kırmızı.

  1. Bir Renderer rend; alanı ekleyin ve Start() içinde GetComponent<Renderer>() ile değer atayın.
  2. Input.GetMouseButtonDown(0) olduğunda, int step alanına 1 ekleyin ve 3'e ulaştığında tekrar 0 olarak ayarlayın.
  3. 0, 1 veya 2. adım için rend.material.color değerini sırasıyla Color.red, Color.yellow veya Color.green olarak ayarlayın.

“Oyna” düğmesine basın ve oyuna tıklayın: ışığın rengi değişir. Ardından “Kontrol et” düğmesine basın.

Kendin dene

using UnityEngine;

public class SignalLight : MonoBehaviour
{

    void Start()
    {
    }

    void Update()
    {
        // Her tıklamada: kırmızı, ardından sarı, ardından yeşil, sonra tekrar kırmızı
    }
}

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

Kendi başına pratik yap: Unity playground