venerdì 29 novembre 2013

Usare la GUI, mantenere le proporzioni > Unity3D

Unity permette di definire la grafica di uno specifico elemento della GUI attraverso degli oggetti chiamati GUIStyle, definibili via codice e attraverso l’inspector. Proprietà di questi oggetti sono le immagini assegnate per ogni stato dell’elemento (Normal, Hover, Active), font utilizzato dal testo, bordi, margini, padding, ecc.
Tutto quello che deve essere visualizzato nella Graphical User Interface deve essere definito via codice all’interno della funzione OnGUI; anche gli eventi come la pressione di un bottone sono richiamati a partire da OnGUI.
Posizione e dimensione degli elementi sono gestiti attraverso un tipo di variabile chiamato Rect; i valori utilizzati sono relativi alla finestra dell’applicazione e hanno origine nel suo angolo in alto a sinistra. Non è raro che un applicazione giri su schermi che hanno diverse risoluzioni, soprattutto nel caso di dispositivi android, in cui ogni telefono ha uno schermo di dimensioni differenti dagli altri. Il risultato ottenuto con le Rect è quello di elementi di dimensione o posizione differenti a seconda della risoluzione degli schermi.
Per mantenere la GUI invariata è possibile giocare sulle proporzioni, partendo da due valori di altezza e larghezza fissati. Nell’esempio vediamo come applicare una trasformazione sulla matrice della GUI, in modo da mantenerla invariata per ogni diverso tipo di risoluzione:
private var originalWidth = 480.0; // risoluzione scelta per creare 
private var originalHeight = 800.0; // i contenuti della GUI 
private var scala : Vector3; 
function OnGUI() { 
scala.x = Screen.width/originalWidth; // calcola il rapporto orizzontale 
scala.y = Screen.height/originalHeight; // calcola il rapporto verticale 
scala.z = 1; var svMat = GUI.matrix; // Sostituisco la matrice, solo le proporzioni sono invariate rispetto l'originale 
GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, scala);
/////////////////////////////////////////////// 
//Definizione della GUI 
/////////////////////////////////////////////// 
GUI.matrix = svMat; // ripristino la matrice originale 
}
Una volta definita la matrice di scala possiamo iniziare a definire gli elementi appartenenti alla nostra GUI.

domenica 17 novembre 2013

Kagerou Project Outer Science Update

Yeah, I spent all day working on this, since the game is released on windows only now I've added more extra to the level. But maybe I've overdid it, I can't get an S at this level, even if it's my own game. I'll leave you the download link, also, updated the download page.
At the beginning the level is locked, you unlock the level when you have at least one S (in hard mode on any level).

I would like to see some gameplay video of this on youtube! Let me know if someone does any!

venerdì 8 novembre 2013

Outer Science Update - Kagerou Project Game

Hi guys, if you are still interest in the game I think I'll have some free time for working on my projects in the next weeks or so. As I've already told I've plans to add Outer Science and Sunset Yesterday to the game, so witch of the following version of the song do you prefer?
JubyPhonic Cover
Whoever it is cover
Awesome cover I don't know who made it
Len Arranged version

Let me know in the comments, I'll decide witch version I'll put in the game.