84. CLASE GUI (I)



Bueno. Hasta ahora nos hemos centrado en estudiar las clases que conformaban el árbol de herencia que ocupa buena parte de la API de Unity. Hemos ido repasándolas (casi) todas, más o menos en orden. A partir de ahora, en cambio, vamos a recorrer clases que no están vinculadas por relación de herencia alguna con las ya explicadas (salvo alguna excepción, que anunciaremos como tal cuando corresponda).

Por tanto la cuestión del orden en su estudio obedecerá a criterios un poco más liviamos, como su mayor o menor importancia o su vinculación funcional con la clase que se haya estudiado con anterioridad.

En base a ese último criterio, y dado que las tres últimas clases estaban relacionadas con la inferfaz gráfica de usuario, vamos a dedicar las siguientes lecciones a darle unas vueltas a diferentes clases que de una manera u otra están vinculadas con la GUI.

Y, como no podía ser de otra forma, empezamos por la clase GUI, que representa la interfaz de Unity:


VARIABLES DE CLASE:

skin:

static var skin : GUISkin


La skin (que podemos traducir por "piel" o "aspecto") en uso. Cambiando esta variable podemos cambiar el look de nuestra GUI. Si su valor es null, se muestra la skin que está por defecto.

Es una instancia de la clase GUISkin, que estudiaremos a continuación de ésta.


color:

static var color : Color


Color del tintero global de la GUI. Afectará tanto a la parte trasera de los elementos (background) como a los colores del texto que escribamos sobre cualquier superficie.

Vamos con el primer ejemplo. Empezamos por eliminar el objeto logoUnity. A continuación editamos miPrimerScript:


function OnGUI() {
GUI.color = Color.yellow;
GUI.Label (Rect (10, 10, 200, 20), "Esto es una etiqueta");
GUI.Box(Rect(10, 50, 100, 50), "Una caja");
GUI.Button(Rect(10,110,90,50), "Un botón");
}


Salvamos y la arrastramos a PortaScripts. Si pulsamos play observaremos algo como esto:



Aquí hemos de explicar varias cosas. Empezando por el final, comprobamos en la imagen que el texto de la GUI, sobre las diferentes superficies, es del color que le hemos indicado a la variable color. Asimismo, los bordes de elementos como el botón adquieren en su parte posterior (background) ese color amarillo.

Esa declaración y las anteriores están contenidas dentro de una función que vimos un poco de puntillas cuando estudiamos la clase MonoBehaviour: la función OnGUI renderiza y maneja eventos GUI. Dicho de otra manera, al llamar a esta función activamos un evento GUI, que en este caso asigna un color a la letra y luego crea una etiqueta, una caja y un botón.


backgroundColor:

static var backgroundColor : Color


Color del tintero para todas las partes traseras (background) de los elementos renderizados para la GUI.

Dicho de otra manera, esta variable de clase hace parte del trabajo que efectuaba color, ya que colorea el background pero no el texto.

Reeditamos miPrimerScript como sigue:


function OnGUI() {
GUI.backgroundColor = Color.red;
GUI.Button(Rect(10,10,70,30), "Mi botón");
}


Al darle al play podemos observar que los bordes del botón que hemos creado son de color rojo, color que se acrecienta cuando colocamos el ratón encima. En cambio, el color del texto sigue siendo blanco (el color por defecto)


contentColor:

static var contentColor : Color


Color de tinta para todo el texto renderizado en la GUI. Esta función es la complementaria de la anterior con relación a color, ya que no afecta al color del background, sino al del texto.

Por ejemplo:


function OnGUI() {
GUI.contentColor = Color.yellow;
GUI.backgroundColor = Color.red;
GUI.Button(Rect(10,10,70,30), "Mi botón");
}


Vemos aquí claramente las diferencias entre ContentColor (amarillo) y backgroundColor (rojo).

POSTED BY UnityScripts
POSTED IN
DISCUSSION 0 Comments

Leave a Reply

Con la tecnología de Blogger.