NOVEDADES IMPORTANTES

Acceso a todos los contenidos

Hace unos meses decidimos suspender nuestra actividad de formación online en Digital Learning SL (propietaria de esta web).

Desde entones hemos mantenido operativos nuestra plataforma de teleformación y webs de contenidos Academia Android y Digital Learning, habilitando un acceso libre y gratuito a todos estos recursos, incluyendo cursos y contenidos Premium que antes requerían un registro y pago previo, lo que ha propiciado un volumen de visitas constante de usuarios que consultan esta formación.

Venta-traspaso de los contenidos

Creemos que estas webs por sus contenidos, posicionamiento SEO y atracción de tráfico (junto a sus cuentas en redes sociales asociadas, incluyendo Twitter y Facebook de nuestro curso de Community Manager) pueden ser una oportunidad para emprendedores o compañías de diversos ámbitos (formación, marketing y publicación online, desarrollo software,…) que quieran:

  • Captar usuarios, alumnos o clientes para sus proyectos, productos y servicios.
  • Comercializar los contenidos bajo múltiples fórmulas: venta de publicidad, modelos freemium o de pago, suscripciones…
  • Crear un nuevo proyecto a partir de esta infraestructura de recursos.

Si tú o tú empresa estáis interesados en adquirirlos, ofrecemos su traspaso en propiedad exclusiva. Puedes contactar conmigo en «contacto@digitallearning.es» (por favor entiende que los correos que no vengan suficientemente identificados no vamos a atenderlos). Gracias.

Manuel Cabello (Socio-Director de Digital Learning/Academia Android)

Este es el número de tutoriales publicados:

Pincha en los textos de los contadores de Tutoriales publicados, Premium o Series de tutoriales para tener un detalle de las publicaciones que comprenden.

Desde hace unos meses, todos los contenidos, incluidos los Premium, son accesibles libre y gratuitamente.

  • Premium
  • Acceso libre
130
Acceso libre
126
Premium

Algunos datos sobre los contenidos que hemos publicado hasta la fecha:

74
Videos
61
Proyectos descargables
contacto[arroba]digitallearning.es

Creación de videojuego en Unity 3D (II): scripts

Post Series: Conociendo Unity3D (VII)

Vamos a completar el desarrollo del videojuego FPS en Unity 3D, que comenzamos explicando en el tutorial anterior, describiendo el código fuente de los scripts que vamos a utilizar.

Estos scripts nos permiten establecer la lógica de funcionamiento asociada tanto a las colisiones que se producen en el videojuego, como al modelo de puntuación utilizado, además de controlar el daño que recibe el personaje, mostrando de manera gráfica la vida restante a través de una barra de vida.

Scripts: si no estás familiarizado con los programas que puedes crear para tus juegos, consulta nuestros anteriores tutoriales sobre scripts en Unity 3D.

Los scripts desarrollados para este videojuego han sido programados en lenguaje C# por ser el lenguaje de referencia en Unity, tal como comentamos en esas publicaciones, aparte de la similitud de su sintaxis al lenguaje Java, y por extensión a Android.

En la siguiente publicación de esta serie podrás descargar el proyecto de este videojuego y su APK para Android. También veremos explicado todo este proyecto en un video.

Colisión enemigo con jugador (decremento de la variable energiaPersonaje)

Vemos el diagrama UML de las dos clases AtaqueEnemigo y BarraVidaPersonaje con sus variables (campos) y métodos:

Diagrama UML ataque enemigo barra vida personaje

AtaqueEnemigo.cs

Script encargado de controlar las colisiones que se produzcan entre el objeto Jugador, y el objeto golem, y en caso de que se produzca dicha colisión, se invocará al método SendMessage , pasándole como argumento un string con el nombre del método a ejecutar:

Nota: Es necesario recordar que toda variable que se declare con el modificador de acceso «public», podrá ser inicializada desde el editor de Unity, para un mayor control de la configuración del juego.

BarraVidaPersonaje.cs

Script donde se define el evento OnGUI , que permite controlar tanto la pausa del videojuego, como la construcción de la barra de vida en la parte superior izquierda de la pantalla:

Colisión proyectil con enemigo (incremento de la variable contadorEnemigo)

Diagrama UML ataque jugador barra vida energia

AtaqueJugador.cs

Al igual que el script comentado anteriormente, controlará las colisiones que se produzcan, en este caso, entre el objeto golem y el objeto bala (prefab), invocando al método SendMessage en caso de que se produzca dicha colisión.

Como característica principal, el evento OnCollisionEnter , recibe como parámetro de entrada la clase Collision, que permitirá controlar, además de los puntos donde se produzcan colisiones, la velocidad de impacto. Para que este evento sea lanzado, será necesario añadir un componente de tipo Rigidbody al GameObject que contenga este script:

BarraVidaEnemigo.cs

Método que permite contabilizar el número de colisiones que se han producido entre el objeto golem y los proyectiles disparados por el jugador.

Se establece la condición de que el número de impactos sea múltiplo de un valor asignado, para además de instanciar un objeto de vida, que permita al jugador recuperar salud y aumentar la dificultad del videojuego, incrementando los parámetros asociados a la velocidad del enemigo.

Otra de las condiciones controladas desde este script, es la finalización del juego al superar al enemigo, manteniendo en todo momento actualizado el marcador de puntos:

 

Colisión de jugador con objeto de vida (aumento de la variable energiaPersonaje)

Diagrama UML recogervida aumentar salud

RecogerVida.cs

Script que implementa el evento OnTriggerEnter , que permite invocar al método aumentarVida() , al producirse la colisión entre el objeto Jugador y el objeto instanciado en tiempo de ejecución «Energía» (prefab, que no es más que un tipo de asset, formado por un GameObject con sus componentes y propiedades ya definidas):

AumentarSalud.cs

Script encargado de reproducir un sonido al colisionar el objeto jugador con el objeto de vida (se declara de tipo public, para posteriormente desde el editor de Unity asignarle la pista de audio a reproducir), además de aumentar la vida del jugador. Una vez se produzcan dichas acciones, se destruirá el objeto que contenga este script:

Diagrama clase destruirbala

DestruirBala.cs

Su funcionalidad radica en la destrucción de los objetos creados al lanzar proyectiles por parte del personaje que maneja el usuario:

Mostrar punto de mira en el centro de la pantalla

Diagrama UML clase Diana

Diana.cs

Script que controla la visualización del punto de mira del arma del personaje cuando este se encuentra en movimiento:

Diagrama clase Disparos

Disparos.cs

Permite al usuario disparar proyectiles al realizar una segunda pulsación en la pantalla. Como se puede apreciar en el código que se muestra a continuación, se instancia un componente Rigidbody, al que se asigna el nombre de un prefab, que contiene todas las propiedades necesarias para detectar colisiones con el enemigo:

Diagrama clase LogicaEnemigo

LogicaEnemigo.cs

Desde este script se controlará los diferentes estados del enemigo, reproduciendo las distintas animaciones, dependiendo del estado en el que se encuentre:

Diagrama clase SalirJuego

SalirJuego.cs

Este script permitirá salir del juego desde la pantalla de pausa, con tan solo seleccionar el componente TextMesh con el título «Salir del juego»:

Diagrama clase NuevaPartida

NuevaPartida.cs

Este script permite volver a comenzar una partida, declarando e inicializando en el método Start()  el máximo de vida para el personaje. También se implementa el evento OnTouchDown()  cuya funcionalidad será la de cargar el nivel construido (se indica como parámetro de entrada un string con el nombre de la escena):