martes, 10 de marzo de 2015

Crea un videojuego con Unity3d (Programación VIII y preparación de la GUI Primera Parte)

Cómo dije en el artículo anterior, hoy vamos ha hablar de la GUI, pero antes, cómo siempre:

Aquí tenéis el primer artículo para seguir el orden que hemos hecho para realizar este minijuego: en Cómo hacer un videojuego en Unity(Introducción)

Recordemos por encima que la GUI o HUD es aquella "pegatina" que tiene o ve la cámara en ciertos momentos del juego, ya sea la vida, las skills, los puntos, las balas, el nombre de los otros players, etc

Nosotros planteamos una GUI muy sencilla:


Pero aún que sea sencilla hay que prepararla y programarla si no solo tendremos una imagen estática sin sentido.

Hasta hace poco se usaba un método basado únicamente en código sin posibilidad de ver en pantalla lo que estabas haciendo, solo se veía en tiempo de ejecución y cuando cambiabas el tamaño del visor se desmontaba todo.

Esto desde la versión 4.6 ha cambiado ¡¡GRACIAS!!  y ahora funciona a través del Canvas cómo un gameObject más en la escena.

Voy a seros sincero, el tutorial del propio Unity3d  sobre Canvas está muy bien explicado: aquí lo tenéis en inglés y aquí en español.

Estaría bien que os lo leyerais, ya que yo voy a ir directamente al funcionamiento: explicar cómo ponerlo en escena y cómo programar el Canvas.
Con lo que explicaré supuestamente os es suficiente para este minijuego, pero reitero que leáis los tutoriales de la web de Unity3d.

Para empezar, debemos ir a GameObject-->UI->Canvas 
 Acto seguido, añadimos el objeto Text de este modo: click derecho y:
 Una vez tenemos el texto haremos lo mismo con Image, seleccionamos las puntas de ancor donde queremos que se vea "proporcional" a cada pantalla.
Cambiamos el color de la imagen y el texto (por ahora para probar si la medida del texto queda bien)

A por el código!!!!

Si has seguido todos los artículos esta parte de aquí te será muy sencilla:
Veamos las letras:
 Lo único que tenemos que hacer es; IMPORTANTE  escribir:

using UnityEngine.UI; justo antes de declarar la clase, si no no nos aparecerán las opciones para trabajar con la GUI.
Después declaramos dos variables publicas de tipo Text con el nombre que deseemos.
Cuando lo tengamos, las iniciamos directamente en el Update (), ya que el valor que va a tener va a variar constantemente.
Cómo ya tenemos todo programado: el cronometro y los puntos solo tendremos que añadir dos lineas (señaladas con una cruz roja en la imagen)

Para escribir en el texto solamente pondremos el nombre de la variable "PUNTO text" y le daremos el valor, string, int, etc que queramos, en el caso de los puntos, es el valor de los mismos y el crono podemos aprovechar la linea del Debug.Log() y listo: darle al play y  tiene que aparecer algo así:

La semana que viene modificaremos la escena de Menú para tocar un poco los botones y mantener la información de una escena a otra.

Artículo Anterior

No hay comentarios:

Publicar un comentario