This shows you the differences between two versions of the page.
pjv:laboratoare:2020:04 [2020/12/09 16:42] alexandru.gradinaru |
pjv:laboratoare:2020:04 [2020/12/09 17:05] (current) alexandru.gradinaru |
||
---|---|---|---|
Line 107: | Line 107: | ||
</code> | </code> | ||
=== Inventar === | === Inventar === | ||
- | |||
- | {{ https://miro.medium.com/max/225/0*7EVPSkASsXBMDMxQ |}} | ||
Pentru a crea un sistem de inventar avem nevoie in primul rand de date atasate fiecarui obiect, cum ar fi nume, icon, atribute etc. Putem realiza acest lucru usor prin obiecte scriptabile (Scriptable Objects). Obiectele Scriptable sunt containere de date ce nu trebuie sa fie atasate la un GameObject intr-o scena. Ele pot fi salvate ca asset-uri in bibliteca proiectului ca mai apoi sa poata fi utilizate. | Pentru a crea un sistem de inventar avem nevoie in primul rand de date atasate fiecarui obiect, cum ar fi nume, icon, atribute etc. Putem realiza acest lucru usor prin obiecte scriptabile (Scriptable Objects). Obiectele Scriptable sunt containere de date ce nu trebuie sa fie atasate la un GameObject intr-o scena. Ele pot fi salvate ca asset-uri in bibliteca proiectului ca mai apoi sa poata fi utilizate. | ||
Line 187: | Line 185: | ||
* o imagine: icon pentru obiectul in inventar | * o imagine: icon pentru obiectul in inventar | ||
* script de gestionare: pentru fiecare slot putem avea un script de gestionare care va actualiza interfata slotului respectiv (nume, icon etc). | * script de gestionare: pentru fiecare slot putem avea un script de gestionare care va actualiza interfata slotului respectiv (nume, icon etc). | ||
+ | |||
+ | {{ :pjv:laboratoare:2020:inventory.png |}} | ||
+ | {{ :pjv:laboratoare:2020:inventory-grid_layout.png |}} | ||
+ | |||
+ | Pentru sloturile de inventar este indicat sa folositi un prefab sau un template. | ||
Interfata grafica a inventarului are nevoie si de un script de gestionare. Astfel vom aveam un script care asculta (subscribe) evenimentul definit (''delegate'') la actualizarea inventarului, si actualizeaza fiecare slot din interfata grafica: | Interfata grafica a inventarului are nevoie si de un script de gestionare. Astfel vom aveam un script care asculta (subscribe) evenimentul definit (''delegate'') la actualizarea inventarului, si actualizeaza fiecare slot din interfata grafica: | ||
Line 223: | Line 226: | ||
if(Inventory.instance.Add(item)) Destroy(gameObject); | if(Inventory.instance.Add(item)) Destroy(gameObject); | ||
</code> | </code> | ||
+ | |||
+ | Similar se poate face si gestiunea altor interfet: de quest pentru player, de echipament / arma, skilltree etc. | ||
=== NPC === | === NPC === | ||
Line 437: | Line 442: | ||
</code> | </code> | ||
- | |||
- | Gestiunea interfetei de quest pentru player, se poate face similar cu cea de inventar. | ||
- | |||
- | Gestiunea interfetei de echipament / arma pentru player, se poate face similar cu cea de inventar. | ||