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 34 / 67.

SetActive(false) tüm bir GameObject'i kapatır: çizilmez, artık çarpışmaz, üzerindeki betikler Update() çağrısı almayı durdurur ve alt nesneleri de onunla birlikte kapanır. SetActive(true) hepsini geri getirir ve activeSelf açık olup olmadığını belirtir. Bir düğmedeki bu betik, fare tıklamasında door alanındaki kapıyı gizler:

public GameObject door;

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

gameObject.SetActive(false) ile kendi nesnesini gizleyen bir betik, nesneyi yeniden gösteremez; çünkü Update() artık çalışmaz. Bu yüzden 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ı olduğu gibi bırakır. 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ısı 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

Kaldıraç betiği, Köprüyü bridge alanında tutar. Space tuşunun köprüyü kontrol etmesini sağla: ilk basışta gizlensin, sonraki basışta geri gelsin ve böylece her basışta bir kez değişsin.

Köprünün tamamını, çarpıştırıcısı da dahil, gizle; böylece hiç kimse orada olmayan bir köprünün üzerinde duramaz.

Play'e bas, Space tuşuna birkaç kez bas, sonra Check'e bas.

Kendin dene

using UnityEngine;

public class BridgeSwitch : MonoBehaviour
{
    public GameObject bridge;

    void Update()
    {
        // Space köprüyü gizler; tekrar basıldığında köprü yeniden görünür
    }
}
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