Skip to content

Creación de videojuego en Unity 3D (I): estructura y elementos

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

Vamos a desarrollar un videojuego en Unity de tipo FPS(*). Este proyecto nos sirve de ejemplo para mostrar la implementación de varios elementos muy utilizados, como el control de colisiones o el cómo establecer una estructura básica de desarrollo de un videojuego completo.

Juego FPSFirst-Person Shooter o también conocido por juego en primera persona

En cuanto a la mecánica del juego en sí, será muy simple. Consistirá en defendernos, disparando con nuestra arma, de un enemigo que nos perseguirá y atacará a lo largo del mapa-escenario que hemos diseñado. En el siguiente video puedes ver una demo del juego.

En esta publicación vamos a describir la estructura y elementos de este videojuego. En el siguiente tutorial de esta serie, veremos los scripts necesarios para implementar la lógica del juego, y allí podrás descargar el proyecto para importarlo a tu equipo. Por último, publicaremos un video con la explicación del proyecto completo.

Desde el punto de vista de la jugabilidad del mismo, podemos destacar los siguientes aspectos:

  • Cámara situada desde el punto de vista del personaje principal, que proporciona una mayor visualización del entorno que rodea al jugador.
  • Lanzamiento de proyectiles, que además de mostrar una ráfaga del recorrido de la bala disparada, terminará ejecutando una explosión al colisionar con un objeto.
  • Lógica de barra de energía del personaje, que describirá el daño recibido por parte del enemigo.
  • Personaje enemigo que seguirá al personaje manejado por el usuario, ocasionándole daño cada vez que colisione con él.
  • Lógica de sonidos asociados a:
    • Disparo del arma del personaje manejado por el usuario
    • Colisión del enemigo con un proyectil
    • Colisión del enemigo con el jugador
    • Colisión entre el jugador y el objeto de vida
  • Menú principal para el inicio del videojuego, además de pantalla de juego superado y game over, con la posibilidad de volver a comenzar el videojuego en ambos casos.
  • Control de puntuación al acertar con un proyectil al enemigo (se visualiza en pantalla junto al arma del personaje).
  • Dos controles, a modo de joystick, para manejar el videojuego desde la pantalla táctil de un dispositivo Android. Además se controlará en todo momento una segunda pulsación, en cualquier lugar de la pantalla, para el lanzamiento de proyectiles.
  • Objeto de vida, que será creado cuando un número determinado de proyectiles alcancen al enemigo, con las siguientes características:
    • El número de colisiones deberá ser múltiplo de 100.
    • Se establecerá un tiempo para su eliminación de la pantalla. Inicialmente se establece en 10 unidades
    • Se implementa un sistema de niveles, a partir del número de impactos que reciba el enemigo, aumentando su velocidad
    • Sólo será posible coger el objeto de vida en caso de haber recibido daño con anterioridad.
  • Se mostrará un punto de mira, para mayor control de la dirección del disparo, que se activará cuando el personaje esté en movimiento.
  • Pantalla de pausa, que permite al usuario detener el juego y continuar exactamente en el mismo estado que antes de su pausa. También será posible salir del videojuego desde este pantalla.

Elementos del videojuego

Los elementos necesarios para la creación del proyecto que denominaremos «FPS Game» son:

Dos escenas que proporcionen la lógica de un menú principal y un primer nivel completamente funcional.

Por un lado se define una escena denominada «MenúInicial«, formada para dos GameObjects, uno de tipo Camera, y otro que definirá un componente de tipo Cube, encargado de controlar la pulsación de la pantalla para iniciar la partida.
Menú principal del videojuego unity

La otra escena construida, denominada «AcademiaAndroidFPS», implementará toda la funcionalidad del videojuego.

Interfaz del juego Unity

Para el uso de ambas escenas será necesario seguir los mismos pasos que para la creación de niveles en un videojuego, que ya vimos en un anterior tutorial.

Para establecer la lógica de navegación en el videojuego, será necesario añadir y ordenar las diferentes escenas construidas, a través de la opción «File > Build Settings...», y pulsando sobre el botón «Add Current«, se añadirá la escena que está abierta en ese momento.

GameObject «Golem«, que nos permite implementar un personaje enemigo en el escenario con su propia IA (inteligencia artificial). Este personaje podrás descargarlo desde la Asset Store de Unity, de forma gratuita.

Descarga personaje Golem en Unity Asset Store
Personaje del videojuego: Golem

GameObject «Jugador«, que además de construir toda la funcionalidad del personaje que manejará el usuario, implementa la cámara principal del videojuego.
GameObject Jugador

GameObject «PantallaGameOver» donde se define un GameObject de tipo Camera denominado «Cámara GameOver«, que se activará al gastar la vida del personaje del usuario. Este objeto estará a su vez formado por varios componentes de tipo TextMesh, que mostrarán información de la puntuación conseguida por el usuario.
Pantalla Game Over

GameObject «PantallaNivelSuperado» donde se define un GameObject de tipo Camera denominado «Cámara Nivel Superado«, dónde se definen varios componentes de tipo TextMesh, que mostrarán los puntos conseguidos, además de un mensaje de enhorabuena.

Esta pantalla se activará al alcanzar la puntuación establecida en la variable de tipo int finalizarJuego  del script «BarraVidaEnemigo.cs".
pantalla nivel superado
GameObject «PantallaPausa» donde se define un GameObject de tipo Camera denominado «Cámara Pausa», dónde se define un componente de tipo TextMesh, que mostrará el mensaje de «Juego pausado«.

Esta pantalla se activará al pulsar el botón implementado en tiempo de ejecución mediante la clase GUI. En el supuesto de pulsar sobre el mensaje «Salir del juego«, se finalizará la aplicación.

pantalla pausa del juego

Prefab «Energía«, que se instancia cumpliendo con la premisa de que el objeto enemigo reciba un número de colisiones establecidas, por parte de los proyectiles lanzados por el personaje del usuario (al alcanzar el número de colisiones, se creará el objeto Energía en pantalla, que aumentará la vida del personaje al contactar con el).

Prefab Energia del jugador
Prefab «bala», que permitirá instanciar nuevos objetos que definen las propiedades necesarias para la detección de colisiones.
Prefab bala

Estructura del proyecto

Como se puede apreciar en las siguientes imágenes, se definen dos escenas dentro del proyecto «FPS Game»:

Escena «Menú_Principal«:

estructuraescenaacademiaandroid_fps estructura escena menú principal
Los GameObjects que aparecen en gris, pertenecen a las diferentes pantallas que se activarán al desencadenarse alguno de los siguientes eventos:

  • Pantalla de game over al ser derrotado por el enemigo
  • Pantalla de nivel superado al vencer al enemigo
  • Pantalla de pausa al seleccionar en cualquier momento de la partida el botón asociado a esta funcionalidad

Escena «AcademiaAndroid_FPS«:

estructura escena videojuego fps

 

Volver arriba
Esta web usa cookies para su correcto funcionamiento. No hay cookies de publicidad, aunque algunos de los contenidos mostrados (videos o documentos insertados) están alojados en servicios externos (Youtube, Vimeo, Box...) que sí pueden implementar sus propias cookies. También se ha incluido en pruebas un Agente AI que incluye sus propias cookies   
Privacidad