86. CLASE GUI (III)









FUNCIONES DE CLASE:

label:

static function Label (position : Rect, text : String) : void
static function Label (position : Rect, image : Texture) : void
static function Label (position : Rect, content : GUIContent) : void
static function Label (position : Rect, text : String, style : GUIStyle) : void
static function Label (position : Rect, image : Texture, style : GUIStyle) : void
static function Label (position : Rect, content : GUIContent, style : GUIStyle) : void

Crea una etiqueta (label) de texto o de imagen en la pantalla. Como podemos observar, esta función tiene varios prototipos, permitiéndonos pasarle distintos parámetros en base a la necesidad y datos que tengamos en cada momento. Dichos parámetros serían:


position: Rectangulo en la pantalla a usar para la etiqueta.
text: Texto a mostrar en la etiqueta.
image: Textura/imagen a mostrar en la etiqueta.
content: Texto, imagen y tooltip para esta etiqueta.
style: El estilo a usar. Si no se indica, se aplicará el estilo para
etiquetas que tenga el GUISking que se esté usando.


En base al significado de estos parámetros, podemos fácilmente deducir la diferencia entre los distintos prototipos de esta función.

Las etiquetas o labels en sí no implican ningún tipo de interacción con el usuario, no captan clicks del ratón y son siempre renderizadas en un estilo normal (no por ejemplo como los botones, que aparte del estilo normal tienen otro para cuando se pasa el ratón por encima, otro cuando se presionan, o cuando se activan, etc).

Pongamos el más sencillo de los ejemplos: mostremos en pantalla el famoso hello world.


function OnGUI () {
GUI.Label (Rect (10, 10, 100, 20), "Hello World");
}


Como vemos, hemos optado por el primer prototipo de la función de los que mostramos al inicio. Meramente el rectángulo con la posición (10,10) y tamaño (100,20) del rectángulo donde ubicaremos la etiqueta, y como segundo parámetro un string con el texto.

Si en lugar de mostrar un texto quisiéramos hacer lo propio con una imagen, modificaríamos la función como sigue:


var unaTextura : Texture2D;

function OnGUI () {
GUI.Label (Rect (10, 40, unaTextura.width, unaTextura.height), unaTextura);
}


Salvamos y arrastramos la textura que teníamos en la carpeta assets de ejemplos anteriores a la variable expuesta de este script que tenemos vinculado a PortaScripts. En este prototipo de nuevo pasamos como parámetro primero un rectángulo con la posición del rectángulo (10,40) y, en lugar de indicar directamente las dimensiones que ha de tener dicho rectángulo, aprovechamos la anchura y altura originales de la imagen arrastrada para no recortarla (aunque por supuesto podemos sentirnos libres de establecer unas dimensiones fijas). El segundo parámetro es donde difiere este prototipo del anterior, ya que en lugar de suministrar un string pasamos una textura.


DrawTexture:

static function DrawTexture (position : Rect, image : Texture, scaleMode : ScaleMode = ScaleMode.StretchToFill, alphaBlend : boolean = true, imageAspect : float = 0) : void


Dibuja una textura dentro de un rectángulo. Tiene los siguientes parámetros:

 
position: Rectángulo en la pantalla para dibujar la textura dentro.
image: Textura a mostrar.
scaleMode: Cómo escalar la imagen cuando la proporción hace que no encaje bien
dentro del rectángulo.
alphaBlend: Si el canal alfa es mezclado en la imagen (por defecto)
imageAspect: Proporción a usar para la imagen fuente. Si vale 0 (por defecto), es
usada la proporción de la imagen. Pasad un w/h para la deseada
proporción, lo cual permite cambiar la proporción de la imagen
original sin cambier la anchura y altura de píxeles.



El parámetro scaleMode es a su vez una enumeración que acepta los siguientes valores:


StretchToFill: Estira la textura para rellenar el rectangulo entero.
ScaleAndCrop: Escala la textura, manteniendo la proporción, hasta cubrir
completamente el rectángulo. Si la textura se dibuja en un
rectángulo con una proporción diferente, la imagen se recorta.
ScaleToFit: Escala la textura, manteniendo la proporción, hasta encajar
completamente dentro del rectángulo.



Vamos ahora a dibujar una textura en la esquina izquierda de la pantalla, textura que se dibujará en una ventana de 60 x 60 píxeles. A la textura original le daremos una proporción de 10 x 1 y la haremos encajar luego en el rectángulo anterior con el Scalemode.ScaleToFit, de tal manera que la textura se escalará hasta encajar horizontalmente con el rectángulo, manteniendo la proporción de 10/1.


function OnGUI() {
}
GUI.DrawTexture(Rect(10,10,60,60), aTexture, ScaleMode.ScaleToFit, true, 10.0f);
}



Box:


static function Box (position : Rect, text : String) : void

static function Box (position : Rect, image : Texture) : void
static function Box (position : Rect, content : GUIContent) : void
static function Box (position : Rect, text : String, style : GUIStyle) : void
static function Box (position : Rect, image : Texture, style : GUIStyle) : void
static function Box (position : Rect, content : GUIContent, style : GUIStyle) : void



Como su nombre indica, crea un cuadro o caja. Sus diferentes prototipos cuentan con estos parámetros:


position: Rectángulo en la pantalla a usar para la caja.
text: Texto a mostrar en la caja.
image: Textura a mostrar en la caja.
content: Texto, imagen y tooltip para la caja.
style: El estilo a usar. Si no se indica expresamente, el estilo de la caja
será el del GUISkin en uso.


Pongamos un ejemplo sencillo:


function OnGUI() {
GUI.Box(Rect(10,20,100,40),"Hola, mundo");
}

POSTED BY UnityScripts
POSTED IN
DISCUSSION 0 Comments

Leave a Reply

Con la tecnología de Blogger.