Está en la página 1de 6

GUI bsicos En esta seccin se explican las necesidades bsicas de scripting controles con UnityGUI.

Hacer controles con UnityGUI Controles UnityGUI hacer uso de una funcin especial llamada OnGUI (). El OnGUI () la funcin se llama a cada cuadro, siempre y cuando el script que contiene esta activado - al igual que la funcin Update (). GUI propios controles son muy simples en su estructura. Esta estructura es evidente en el siguiente ejemplo Script:
/* Example level loader */ function OnGUI () { // Make a background box GUI.Box (Rect (10,10,100,90), "Loader Menu"); // Make the first button. If it is pressed, Application.Loadlevel (1) will be executed if (GUI.Button (Rect (20,40,80,20), "Level 1")) { Application.LoadLevel (1); } // Make the second button. if (GUI.Button (Rect (20,70,80,20), "Level 2")) { Application.LoadLevel (2); } }

Este ejemplo es un gestor completo, el nivel funcional. Si copiar / pegar este script y adjuntar un GameObject, ver el siguiente men aparecer en al entrar en modo de reproduccin:

El men del gestor creado por el cdigo de ejemplo Echemos un vistazo a los detalles del cdigo de ejemplo: La primera lnea de interfaz grfica de usuario, GUI.Box (Rect (10,10,100,90), "men del gestor"), muestra una caja de control con el "men del gestor de" texto de cabecera. Sigue el esquema de control GUI tpica declaracin que vamos a explorar un momento. La siguiente lnea de interfaz grfica de usuario es una declaracin de botones de control. Tenga en cuenta que es un poco diferente de la declaracin de la caja de control. En concreto, la declaracin botn todo se coloca dentro de una sentencia if. Cuando el juego se est ejecutando y se hace clic en el botn, esta sentencia if devuelve true y cualquier cdigo dentro del bloque, si se ejecuta. Desde el OnGUI () el cdigo se llama a cada cuadro, no es necesario crear explcitamente o destruir los controles de GUI. La lnea que dice que el control es el mismo que lo crea. Si usted necesita para mostrar los controles en momentos especficos, se puede utilizar cualquier tipo de lgica de secuencias de comandos para hacerlo. Script:
/* Flashing button example */ function OnGUI () { if (Time.time % 2 < 1) { if (GUI.Button (Rect (10,10,200,20), "Meet the flashing button")) { print ("You clicked me!"); } } }

Aqu, GUI.Button () slo se llama a cada segundo, por lo que el botn aparecer y desaparecer. Naturalmente, el usuario slo puede hacer clic en el botn es visible. Como puede ver, se puede utilizar cualquier lgica deseada para controlar cuando los controles de interfaz grfica de usuario se muestran y funcional. Ahora vamos a explorar los detalles de la declaracin de cada uno de control. Anatoma de un control Hay tres piezas clave de informacin necesaria cuando se declara un control GUI: Tipo (de posicin, de contenido) Observe que esta estructura es una funcin con dos argumentos. Vamos a estudiar los detalles de esta nueva estructura.

tipo El tipo es el tipo de control, y se declara por llamar a una funcin de unidad de la clase de interfaz grfica de usuario o la clase GUILayout, que se discute en detalle en la seccin Diseo de la Gua de los modos. Por ejemplo, GUI.Label () crea una etiqueta de nointeractivo. Todos los tipos de control diferentes se explican ms adelante, en la seccin de controles de la Gua. posicin La posicin es el primer argumento de cualquier funcin de control de interfaz grfica de usuario. El argumento en s cuenta con una funcin Rect (). Rect () define cuatro propiedades: ms a la izquierda, posicin de ms arriba, el ancho total, la altura total. Todos estos valores se presentan en nmeros enteros, que corresponden a los valores de pxel. Todos los controles UnityGUI trabajo en el espacio de la pantalla, que es la resolucin del reproductor publicado en pxeles. El sistema de coordenadas es superior izquierda base. Rect (10, 20, 300, 100) define un rectngulo que comienza en las coordenadas: 0,20 y termina en las coordenadas 310120. Vale la pena repetir que el segundo par de valores en Rect () son la anchura total y altura, no las coordenadas donde al final los controles. Por ello, el ejemplo mencionado anteriormente termina en 310.120 y no 300.100. Puede utilizar las propiedades y Screen.width Screen.height para obtener las dimensiones totales del espacio de pantalla disponible en el reproductor. El siguiente ejemplo puede ayudar a clarificar cmo se hace esto:
/* Screen.width & Screen.height example */ function OnGUI () GUI.Box (Rect GUI.Box (Rect GUI.Box (Rect GUI.Box (Rect "Bottom-right"); } { (0,0,100,50), "Top-left"); (Screen.width - 100,0,100,50), "Top-right"); (0,Screen.height - 50,100,50), "Bottom-left"); (Screen.width - 100,Screen.height - 50,100,50),

Las cajas colocadas por el ejemplo de arriba.

contenido El segundo argumento para un control de interfaz grfica de usuario es el contenido real que se muestra con el control. Mayora de las veces que se desea mostrar un texto o una imagen en su control. Para mostrar el texto, pase una cadena como argumento de contenido como este: Script:
/* String Content example */ function OnGUI () { GUI.Label (Rect (0,0,100,50), "This is the text string for a Label Control"); }

Para mostrar una imagen, declare una variable pblica Texture2D, y pasar el nombre de la variable como el argumento de contenidos como este:
/* Texture2D Content example */ var controlTexture : Texture2D; function OnGUI () { GUI.Label (Rect (0,0,100,50), controlTexture); }

He aqu un ejemplo ms cercano a un escenario del mundo real:


/* Button Content examples */ var icon : Texture2D; function OnGUI () { if (GUI.Button (Rect (10,10, 100, 50), icon)) { print ("you clicked the icon"); } if (GUI.Button (Rect (10,70, 100, 20), "This is text")) { print ("you clicked the text button"); } }

Hay una tercera opcin que permite mostrar imgenes y texto en conjunto en un control de interfaz grfica de usuario. Usted puede proporcionar un objeto GUIContent como el argumento de contenido, y definir la cadena y la imagen que se mostrar en el GUIContent. Script:
/* Using GUIContent to display an image and a string */ var icon : Texture2D; function OnGUI () { GUI.Box (Rect (10,10,100,50), GUIContent("This is text", icon)); }

Tambin puede definir un mensaje de ayuda en el GUIContent, y mostrarlo en otras partes de la interfaz grfica de usuario cuando el ratn pasa sobre ella. Script:
/* Using GUIContent to display a tooltip */ function OnGUI () { // This line feeds "This is the tooltip" into GUI.tooltip GUI.Button (Rect (10,10,100,20), GUIContent ("Click me", "This is the tooltip")); // This line reads and displays the contents of GUI.tooltip GUI.Label (Rect (10,40,100,20), GUI.tooltip); }

Si usted es atrevido tambin puede utilizar GUIContent para mostrar una cadena, un icono, y el mensaje de ayuda!

/* Using GUIContent to display an image, a string, and a tooltip */ var icon : Texture2D; function OnGUI () { GUI.Button (Rect (10,10,100,20), GUIContent ("Click me", icon, "This is the tooltip")); GUI.Label (Rect (10,40,100,20), GUI.tooltip); }

Lista de ejemplos http://unity3d.com/support/documentation/ScriptReference/GUIContent.GUIContent.html

También podría gustarte