Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pjv:laboratoare:2020:04 [2020/12/09 16:08]
alexandru.gradinaru
pjv:laboratoare:2020:04 [2020/12/09 17:05] (current)
alexandru.gradinaru
Line 83: Line 83:
 </​code>​ </​code>​
  
 +=== GUI ===
  
 +Pentru afisarea elementelor de interfata relative la spatiul scenei se poate folosi atat un canvas, cat si mai multe instante de canvas.
 +
 +{{ https://​www.stevestreeting.com/​images/​healthbarsdemo_thumb.png |}}
 +
 +Astfel, o varianta este sa atasati un canvas de tip WorldSpace la obiectele care au nevoie de elemente de interfata grafica (de exemplu health bar).
 +
 +
 +{{ https://​www.stevestreeting.com/​images/​healthbarobj.png |}}
 +{{ :​pjv:​laboratoare:​2020:​localcanvas.png?​direct&​750 |}}
 +{{ :​pjv:​laboratoare:​2020:​localcanvas-wspace.png |}}
 +
 +O alta varianta este prin scriptarea unui singur element de canvas referentiat si transpunerea lui relativ la obiectul curent (util de exemplu in cazul dialogului sau a elementelor care nu se pot afisa de mai multe ori in acelasi timp)
 +<​code>​
 +var target : Transform;
 + 
 +function Update ()
 +{
 +     var wantedPos = Camera.main.WorldToViewportPoint (target.position);​
 +     ​transform.position = wantedPos;
 +}
 +</​code>​
 === Inventar === === Inventar ===
  
Line 163: 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 199: 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 413: 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. 
  
  
pjv/laboratoare/2020/04.1607522937.txt.gz ยท Last modified: 2020/12/09 16:08 by alexandru.gradinaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0