C# Unity UI Unity C#
Početna stranica
Polazna lekcija
Prava pristupa
Time
GameObject
Destroy i SetActive
Mathf
Input
SceneManagement
UI programiranje
Audio source
Vektori
Kvaternion
Transform
Instantiate
RigidBody
OnTrigger
OnCollision
RayCast
PlayerPref


Instantiate

Instantiate metoda koristi se za stvaranje novih instanci objekata tijekom pokretanja igre. To jest koristimo je za dodavanje objekata u scenu poput neprijatelja, efekata...

Istancirani objekti su najčešće prefabovi, ali mogu biti i objekti koji se već nalaze u sceni.

U sljedećem primjeru ćemo stvoriti objekt pri pokretanju igre na istoj poziciji i rotaciji kao prefab.

Primjer:


[SerializeField] GameObject objekt1;  // Prefab koji želite instancirati

void Start() 
{
    Instantiate(objekt1); // Istancira objekt1 na njegovoj originalnoj poziciji i rotaciji
}
                

Pozicija i rotacija kod instanciranja

Prilikom instanciranja objekta, možemo mu odrediti poziciju i rotaciju.

Varijabla određeniObjekt je prefab ili objekt u sceni koji istanciramo.

Varijabla pozicija je pozicija na kojoj će se stvoriti istancirani objekt.

Varijabla rotacija je rotacija koju će imati istancirani objekt.

Sintaksa:


Instantiate(određeniObjekt, pozicija, rotacija);
            

U sljedećem primjeru ćemo istancirati objekt pri pokretanju igre. Istancirani objekt će imati drugačiju poziciju i rotaciju od prefaba.

Primjer:


[SerializeField] GameObject objekt1;  // Referenca na objekt1
private Vector3 pozicijaStvaranja = new Vector3(2, 42, 12);  // Pozicija gdje će se kreirati objekt
private Quaternion rotacijaStvaranja = Quaternion.Euler(12, 43, 120);  // Rotacija objekta

void Start() 
{
    Instantiate(objekt1, pozicijaStvaranja, rotacijaStvaranja);
}
                

Ako želimo da nam istancirani objekt ima drugačiju poziciju, ali istu rotaciju ko prefab, na mjestu rotacije pišemo Quaternion.identity.

Primjer:


[SerializeField] GameObject objekt1;  // Referenca na objekt1

void Start() 
{
    Instantiate(objekt1, new Vector3(2, 42, 12), Quaternion.identity);
}
                

Upravljanje komponentama istanciranog objekta

U sljedećem primjeru pokazat ćemo vam kako upravljati komponentama istanciranog objekta. U ovom primjeru naknadno ćemo mu promjeniti poziciju i komponentu MeshRenderer.

Primjer:


[SerializeField] GameObject objekt1;
[SerializeField] GameObject objekt2;

void Start() 
{
    // Istanciranje i deklariranje objekta
    GameObject kloniraniObjekt = Instantiate(objekt1, new Vector3(2, 42, 12), Quaternion.identity);

    kloniraniObjekt.GetComponent<MeshRenderer>().enabled = false; // Isključujemo MeshRenderer komponentu kod kloniranog objekta
    kloniraniObjekt.transform.position = objekt2.transform.position; // poziciju kloniranog objekta naknadno postavljamo na poziciju objekt2
}
                

Prijašnje

Sljedeće