GameObject.SetActive
Deklarasyon
public void SetActive(bool value);
Parametreler
value Eğer true ise, GameObject'i etkinleştirir; false ise, GameObject'i devre dışı bırakır.
Açıklama
Verilen true veya false değerine bağlı olarak GameObject'i Aktif veya Devre Dışı bırakır.
Bir GameObject, üst öğe aktif olmadığı için devre dışı kalabilir. Bu durumda, SetActive çağrısı, onu aktif hale getirmez, ancak yalnızca GameObject'in yerel durumunu ayarlar ve bu durumu GameObject.activeSelf kullanarak kontrol edebilirsiniz. Unity, tüm üst öğeler aktif hale geldiğinde bu durumu kullanabilir.
Bir GameObject'in devre dışı bırakılması, bağlı renderer'lar, collider'lar, rigidbody'ler ve script'ler de dahil olmak üzere her bileşeni devre dışı bırakır. Örneğin, Unity, devre dışı bırakılmış bir GameObject'e bağlı bir script'in Update() metodunu artık çağırmaz. OnEnable veya OnDisable, GameObject SetActive(true) veya SetActive(false) aldığında çağrılır.
using UnityEngine;
public class Example : MonoBehaviour
{
private GameObject[] cubes = new GameObject[10];
public float timer, interval = 2f;
void Start()
{
Vector3 pos = new Vector3(-5, 0, 0);
for (int i = 0; i < 10; i++)
{
cubes[i] = GameObject.CreatePrimitive(PrimitiveType.Cube);
cubes[i].transform.position = pos;
cubes[i].name = "Cube_" + i;
pos.x++;
}
}
void Update()
{
timer += Time.deltaTime;
if (timer >= interval)
{
for (int i = 0; i < 10; i++)
{
int randomValue = Random.Range(0, 2);
if (randomValue == 0)
{
cubes[i].SetActive(false);
}
else cubes[i].SetActive(true);
}
timer = 0;
}
}
}
Bu blog Unity Docs'un Türkçeye çevrilmiş halidir.
Yorumlar
Yorum Gönder