Saltear al contenido principal

GUI Texture y GUI Text: ejemplo implementación en videojuego

Conociendo Unity3D (VII)
1. Creación de escenas y niveles en videojuego Unity 3D
2. Colliders: detección de colisiones en videojuego Unity 3D
3. Componentes para creación de interfaz de usuario en Unity 3D
4. GUI Texture y GUI Text: ejemplo implementación en videojuego
5. Creación de videojuego en Unity 3D (I): estructura y elementos
6. Creación de videojuego en Unity 3D (II): scripts
7. Creación de videojuego en Unity 3D (III): video
8. Generar ejecutable de videojuego Unity: ejemplo plataforma Android

Ya presentamos algunos de los principales elementos que proporciona Unity para construir una interfaz de usuario gráfica.

A continuación, desarrollaremos un ejemplo de interfaz de usuario en la que se podrá lanzar un videojuego típo shooter (jugador que dispara a objetos o enemigos) desde un menú inicial. Una vez lanzado el juego, se podrá visualizar el número de proyectiles disponibles y con un botón se podrá recargar éstos cuando se hayan agotado.

En el video que tendrás en la siguiente publicación, complementaremos la explicación del ejemplo que vamos a desarrollar aquí (como es habitual, es un ejemplo ‘esquemático’, donde no incluimos personajes ni otros elementos típicos del diseño de un videojuego, para centrarnos solo en la funcionalidad que estamos explicando). Para hacerte una mejor idea, puedes ver un extracto de ese video con el resultado final:

Comenzaremos por enumerar los elementos necesarios para el desarrollo de este ejemplo (no se describirán las partes relacionadas con la creación de un GameObject en tercera persona,  creación de un terreno o la iluminación de la escena, que ya han sido tratados en otras publicaciones de este curso de Unity):

  • Dos escenas pertenecientes al mismo proyecto para establecer la lógica de carga de un nivel desde el menú principal.
  • GameObject primitivo de tipo Quad, que represente el fondo del menú que muestre la opción de comenzar la partida.
  • Dos GameObjects que implementen un componente GUI Text cada uno encargados de mostrar un texto para comenzar la partida desde el menú inicial, además de visualizar los proyectiles disponibles.
  • GameObject que implemente un componente GUI Texture que permitan al usuario recargar los proyectiles disponibles una vez se han agotado.
  • GameObject Directional Light para iluminar la escena del juego.
  • GameObject Camera para representar la vista del juego en tercera persona.
  • Tres scripts que permitan tanto lanzar el videojuego, como mostrar los proyectiles disponibles y reiniciar el contador una vez se hayan agotado y el usuario pulse el botón para la recarga.

En primer lugar se creará una nueva escena que construirá la lógica del menú inicial, a través del menú File > New Scene. Recordemos que para crear un sistema de niveles, bastará con seleccionar el menú File > Build Settings…, y con la escena del menú ya creada, se pulsará el botón «Add Current», para añadir la nueva escena.

Para este ejemplo se define el siguiente sistema de niveles:

Build Settings

Continuando con la escena encargada de construir el menú de inicio de partida, que como cualquier escena por defecto implementa una cámara principal, se deberá añadir un GameObject GUI Text con el texto «Comenzar Partida«.

A este GameObject le añadiremos un componente de tipo script denominado ComenzarPartida, que sobrescribe el método OnMouseDown, encargado de controlar la pulsación del click izquierdo del ratón, y a continuación, carga el nivel «Terreno» mediante la llamada al método LoadLevel de la clase Application


Volver arriba