Menu
CoddyTech

Göster ve Gizle

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

SetActive(false) bir GameObject'in tamamını kapatır: çizilmez, artık çarpışmaz, üzerindeki betikler Update() almamaya başlar ve alt nesneleri de onunla birlikte kapanır. SetActive(true) her şeyi geri getirir ve activeSelf açık olup olmadığını belirtir. Bir düğmedeki bu betik, fare tıklamasıyla door alanındaki kapıyı gizler:

public GameObject door;

void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        door.SetActive(false);
    }
}

gameObject.SetActive(false) kullanarak kendi nesnesini gizleyen bir betik, nesneyi tekrar gösteremez; çünkü Update() artık çalışmaz. Bu nedenle anahtar başka bir nesnede bulunur ve gösterip gizlediği nesneye bir referans tutar.

enabled tek bir bileşeni kapatır ve nesnenin geri kalanını etkilemez. GetComponent<Renderer>().enabled = false bir nesneyi görünmez yapar, ancak çarpıştırıcısı hâlâ nesneleri engeller: görünmez bir duvar. enabled = false olan bir betik artık Update() çağrıları almaz, ancak nesne sahnede kalır; çizilmeye ve çarpışmaya devam eder, diğer bileşenleri de çalışmayı sürdürür.

challenge icon

Görev

Orta

Boşluk tuşuyla köprüyü gizle ve geri getir.

  1. Update() içinde, Input.GetKeyDown(KeyCode.Space) koşulunda tüm köprüyü, çarpıştırıcısı da dâhil olmak üzere, açıp kapatmak için bridge.SetActive(...) çağır.
  2. Durumunun tersini ilet: bridge.SetActive(!bridge.activeSelf);.

“Oyna” düğmesine bas ve Boşluk tuşuna birkaç kez bas: köprü kaybolup geri gelir. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class BridgeSwitch : MonoBehaviour
{
    public GameObject bridge;

    void Update()
    {
        // Space köprüyü gizler, bir sonraki basışta ise tekrar gösterir
    }
}

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

Kendi başına pratik yap: Unity playground