Destroy uništava objekt i oslobađa resurse koje zauzima.
SetActive isključuje i uključuje vidljivost i aktivnost objekta.
Destroy je funkcija kojom uništavamo objekt i time oslođamo resurse koje zauzima. Nakon što je objekt uništen nije ga moguće vratiti u scenu.
Koristimo ga tako što unutar Destroy-a stavimo objekt koji želimo uništiti.
U sljedećem primjeru ćemo uništiti objekt1.
public GameObject objekt1;
void Start()
{
Destroy(objekt1);
}
Ako stavimo zarez i neki broj nakon njega taj će se objekt uništiti u zadanom vremenu nakon što je funkcija pokrenuta. Vrijeme je izraženo u sekundama.
public GameObject objekt1;
public GameObject objekt2;
public GameObject objekt3;
void Start()
{
Destroy(objekt1, 5); //ovaj je objekt uništen nakon 5 sekundi od pokretanja igre
Destroy(objekt2, 6); //ovaj je objekt uništen nakon 6 sekundi od pokretanja igre
Destroy(objekt3, 6.5f); //ovaj je objekt uništen nakon 6.5 sekundi od pokretanja igre
}
Metoda OnDestroy poziva se prije nego li je objekt uništen.
U sljedećem primjeru ćemo ispisati da je objekt uništen i navesti naziv tog objekta.
public GameObject objekt1;
void Start()
{
Destroy(objekt1);
}
void OnDestroy()
{
Debug.Log("Objekt" + objekt1.name + "je uništen");
}
SetActive je funkcija uz pomoć koje možemo uključiti i isključiti vidljivost i aktivnost nekog objekta. MeshRenderer isključuje samo vidljivost objekta.
Funkciju SetActive možemo koristiti kako bi naprimjer optimizirali igru na način da isključimo neki objekt kada je previše udaljen od igrača.
U sljedećem primjeru ćemo isključiti te ponovno uključiti objekt1.
public GameObject objekt1;
void Start()
{
objekt1.SetActive(false); //isključuje objekt
objekt1.SetActive(true); //uključuje objekt
}
OnEnable je metoda koja se poziva kada je neki objekt aktiviran.
U sljedećem primjeru pozivamo metodu OnEnable kada uključimo objekt1.
public GameObject objekt1;
void Start()
{
objekt1.SetActive(true);
}
void OnEnable()
{
Debug.Log("Objekt" + objekt1.name + "je uključen.");
}
OnDisable je metoda koja se poziva kada je neki objekt isključen.
U sljedećem primjeru pozivamo metodu OnDisable kada isključimo objekt1.
public GameObject objekt1;
void Start()
{
objekt1.SetActive(false);
}
void OnDisable()
{
Debug.Log("Objekt" + objekt1.name + "je isključen.");
}