This shows you the differences between two versions of the page.
pjv:laboratoare:03 [2018/10/24 14:24] alexandru.gradinaru |
pjv:laboratoare:03 [2019/10/16 16:43] (current) alexandru.gradinaru |
||
---|---|---|---|
Line 62: | Line 62: | ||
=== Bone-based === | === Bone-based === | ||
- | Incepand cu versiunea din 2017, Unity are suport si pentru animatii Bone-based pentru 2D. | + | Incepand cu versiunea din 2018 (2018.2.0f2), Unity are suport si pentru animatii Bone-based pentru 2D. |
Puteti folosi imaginea de mai jos ca exemplu: {{ :pjv:laboratoare:plunkahgreen.png?direct&200 |}} | Puteti folosi imaginea de mai jos ca exemplu: {{ :pjv:laboratoare:plunkahgreen.png?direct&200 |}} | ||
Line 177: | Line 177: | ||
// "_Cube" is the reflection cubemap. | // "_Cube" is the reflection cubemap. | ||
</code> | </code> | ||
+ | |||
+ | Pentru a functiona corect, textura pe care o folositi trebuie sa fie setata pe ''Repeat'' | ||
+ | {{ :pjv:laboratoare:2018-10-24_2_li.jpg?direct&300 |}} | ||
+ | |||
+ | === Animatii proiectile / tragere === | ||
+ | |||
+ | Pentru animatia de tragere, se foloseste in general o stare pentru a actualiza animatia jucatorului, iar proiectilul se genereaza in felul urmator (recomandat): | ||
+ | * Pe arma (care se afla in scena) se adauga un script care gestioneaza generarea si directia proiectilelor | ||
+ | * Plecand din locatia armei, se instantiaza (folosind functia Instantiate, studiata deja) un proiectil (prefab de regula, nu trebuie sa existe deja in scena, folosind pozitia armei). Proiectilul are atasat un script ce contine detalii de viteza, damage etc | ||
+ | * Proiectilul are o miscare de translatie continua pe o directie, pana la atingerea unei limite sau a unui collider cand produce un trigger | ||
+ | |||
+ | === Animatii si instantiere in scena ==== | ||
+ | |||
+ | Pentru instantiere se foloseste functia ''Instantiate(gameobject, position)''. | ||
+ | Pentru a genera continut doar in spatiu vizil pe ecran, se pot defini obiecte care fixeaza acest cadru, si generat random apoi in acest interval. | ||
+ | Obiectele generate pot fi scriptate astfel incat sa aiba animatii si miscari continui. | ||
+ | |||
+ | === Miscarea personajului === | ||
+ | |||
+ | Miscarea personajului se poate face folosind o componenta de RigidBody2D si aplicand forte sau miscari. | ||
+ | <code> | ||
+ | rb = GetComponent<Rigidbody2D>(); | ||
+ | float moveHorizontal = Input.GetAxis ("Horizontal"); | ||
+ | float moveVertical = Input.GetAxis ("Vertical"); | ||
+ | |||
+ | Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical); | ||
+ | |||
+ | rb.AddForce (movement * speed); | ||
+ | |||
+ | rb.MovePosition (transform.position + offset * Time.deltaTime); | ||
+ | </code> | ||
+ | |||
+ | === Coliziuni === | ||
+ | |||
+ | Pentru detectia coliziunilor se poate folosi un collider2D. Pentru o interactiune usoara, se poate genera un Trigger la evenimentul de coliziune bifand caseta de ''Trigger'' din componenta. Dupa care se poate prelua evenimentul si obiectul cu care se face coliziunea. | ||
+ | <code> | ||
+ | void OnTriggerEnter(Collider otherObject) { | ||
+ | |||
+ | score += 10; | ||
+ | scoreText.text = score.ToString(); | ||
+ | Destroy(otherObject.gameObject); | ||
+ | |||
+ | } | ||
+ | </code> | ||
+ | |||
=== Cerinte === | === Cerinte === | ||
Line 187: | Line 232: | ||
- se poate controla de la tastatura | - se poate controla de la tastatura | ||
- trage cu proiectile in inamici | - trage cu proiectile in inamici | ||
- | - animat in mai multe stari | + | - animat in mai multe stari (minim 3) |
- are un scor care creste la distrugerea inamicilor | - are un scor care creste la distrugerea inamicilor | ||
- | - Adaugati trei tipuri de inamici animati in trei moduri diferite | + | - Adaugati minim doua tipuri de inamici animati prin tehnici diferite |
- la coliziune cu proiectilul jucatorului se distrug | - la coliziune cu proiectilul jucatorului se distrug | ||
- la coliziune cu jucatorul se distrug | - la coliziune cu jucatorul se distrug | ||
- | - sunt generati dinamic, la pozitii aleatoare | + | - sunt generati dinamic, la pozitii aleatoare si se deplaseaza incontinuu |