1. Čitanje pozicije, rotacije i veličine objekta iz koda:

U suštini, svodi se na pristup komponenti Transform i čitanje pozicije, rotacije i veličine.

U nastavku su navedeni primeri:

Čitanje pozicije: 

  Vector3 pozicija = transform.position;

Čitanje rotacije

   // (primer oko z-ose):
  float Rotation = gameObject.transform.eulerAngles.z;

čitanje veličine (scale): 

   Vector3 skala = gameObject.transform.localScale;

Dodatno:

A kako bi se na primer postavljala rotacija:   

// oko z-ose (koja "ide od nas"): 

   //Forward Direction   
 transform.Rotate(0, 0, Time.deltaTime * speed, Space.Self);    
   //Reverse Direction
 transform.Rotate(0, 0, -Time.deltaTime * speed, Space.Self);

...

Zadatak: u scenu postaviti jedan kvadrat, na poziciju po želji. U Update postaviti da se kvadrat pomera, malo po malo, i da se u konzoli ispisuje pozicija.

Deo rešenja:

        gameObject.transform.Translate(0.002f, 0, 0);
        Debug.Log("pozicija kvadrata je " + gameObject.transform.position.ToString());


2. Rad sa funkcijom Instantiate:

Instantiate - kreiranje nove instance ili novog primerka objekta igre i to u toku rada igre (runtime). To je u stvari situacija kada se u igri pojavi još nešto. Primer je kreiranje projektila, ili pojavljivanje novih neprijatelja. Instantizacija može da se koristi za kreiranje "klonova" bilo kojeg objekta igre, pa čak i skripti (i skripta su objekti igre).

Ovaj metod kao parametar uzima GameObject koji treba kreirati.

Radimo primer kao na sledećem video snimku:


3. Rad sa funkcijom Destroy:

Funkcija Destroy se koristi za uklanjanje objekata igre, komponenti i asset-a i to u toku rada igre (runtime). Objekat koji se navede u zagradama biva uklonjen odmah nakon Update-a, ili ako se kao drugi parametar navede neki broj, onda se uklanja sa zakašnjenjem od toliko sekundi. Ako se kao parametar metode Destroy navede navede komponenta nekog objekta, onda se sa navedenog objekta uklanja zadata komponenta.

Radimo primer kao na sledećem video snimku:



4. Pravljenje scene sa više kolizionih objekata

Kolizija je kada se objekti sudare. Da bi moglo da dođe do sudara između objekata, objekti treba da imaju neku od komponenti tipa Collider2D, a jedan od objekata treba da ima i komponentu RigidBody2D (pošto radimo u 2D,  onda su i komponente koje koristimo u 2D)

Radimo primer kao na sledećem video snimku:


5. Dodavanje igrača na određenu poziciju kroz kod

U prethodnom primeru dodati jedan prazan objekat igre, za koji treba kreirati skriptu u kojoj se periodično kreiraju loptice:

       public GameObject objekat;
    public Vector3 pozicija;
    int brojac = 0;
    
    // Update is called once per frame
    void Update()
    {
        brojac++;
        if(brojac%3000==0)
           Instantiate(objekat, pozicija, Quaternion.identity);
    }


... i prevući objekat koji se dodaje, i postaviti poziciju na koju se kreiraju loptice .

Razmislite da li bi bilo bolje da se za loptice napravi Prefab ?


6. Extra

Za rad kod kuće:

Nastaviti kreiranje igrice od prethodnog časa, prvo proveriti video br.1, a onda preći na video br.2

,

, ...

Last modified: Wednesday, 19 January 2022, 6:01 PM