Unity práctico: Videojuego 3D shooter

Reiniciando nuestro videojuego

¡Prueba gratis durante 10 días

nuestros 1197 cursos !

Prueba gratis Mostrar modalidades de suscripción
Cada vez que nuestro personaje pierda el total de su vida, reiniciaremos nuestro videojuego desarrollado en Unity. Para eso implementaremos un código en C# que permita lograr empezar nuevamente el nivel.

Transcripción

Ahora que ya tenemos la vida, lo que vamos a hacer es mostrar un mensaje cuando pierdes. Para eso, algo muy sencillo, vamos a grabar la escena que estamos trabajando –voy a minimizar esto para que se entienda– y voy a crear una nueva escena. Voy a Archivo, Nueva escena y se abre una nueva escena. Lo único que queremos aquí es mostrar que has perdido. Voy a grabar y dentro de nuestra carpeta de escenas pondremos el nombre de una escena 'Perdiste' y grabamos. Aquí está nuestra escena, y lo que queremos mostrar solamente por ahora es un texto que diga que hemos perdido. Estamos aquí, vamos al Canvas y el texto lo vamos a centrar aquí: 'Perdiste'. Dentro de este texto vamos a poner el ancla en el centro, por lo pronto y además de eso, agrandaremos un poco el tamaño. Si no se ve es porque nuestro texto es un poco más pequeño, aquí, vamos a ponerle 200 x 50, para que no sea tan grande tampoco, ya está. Voy a moverlo un poco al centro, el texto también vamos a buscarlo ponerlo al centro. Esa es la herramienta referencial, después podemos poner una imagen, cambiarla. En realidad, lo que estamos buscando es el objetivo de esta vista. Guardamos, recuerden que estamos trabajando en tres vistas distintas, tenemos que grabar cada vez que queremos utilizarla, y vamos al 'Main' de nuevo. Voy a escribir dentro del Player que cuando muera, vamos a mostrar esta escena. Para eso, primero, no va a ser de forma inmediata, porque sino ni bien muera, inmediatamente no se va a ver la animación del personaje ni del zombi. Así que vamos a crear una variable que vamos a poder modificar en cualquier momento: 'timeLimit', que va a ser igual a dos segundos, por ejemplo. Adicional a eso, vamos a traer un paquete para poder trabajar el tema de las escenas 'UnityEngine.SceneManagement'. Usamos este paquete para manejar las escenas. Seguidamente, lo que vamos a hacer es estar preguntando constantemente de que, primero, si está muerto nuestro personaje, ¿cómo sabemos que está muerto? Por las vidas. Es menor, igual a cero. Si es así, le consultamos. Si el tiempo que hemos creado de límite es mayor a uno, acá le diremos que le vamos a restar el 'deltaTime'. Cuando suceda esta condición, vamos a decirle a la escena que vamos a cargar la escena que hemos creado, 'Perdiste'. Grabo, voy a ir a Unity y aquí al Player vamos a cambiarle la cantidad de vidas, porque es mucho, dos, y ejecutamos. Uno, dos y aparece nuestra vista de 'Perdiste'. No nos dio mucho tiempo, ¿no? Eso lo podemos modificar dentro del código. En vez de dos, le podemos poner cinco. Ejecutamos y probamos. Uno, muero, empieza a comer y aparece. Si le queremos dar un poco más de tiempo, bueno, va a depender de nosotros, pero en realidad ya con esto tenemos la vista que queremos. Para que quede un poco más bonito, lo dejaremos en diez. Y con esto hemos aprendido a manejar un poco el reinicio de nuestro juego utilizando escenas. Lo que podemos hacer ahora es ir a Unity, ir al proyecto y... ir a nuestra vista que hemos creado aquí. Esta es la vista preliminar y lo que también podemos hacer dentro del Canvas es decirle que queremos crear, por ejemplo, un botón, un botón ahí. Este botón, que dentro también tiene un componente de texto, le pondremos 'Reiniciar'. Lo que buscamos es que cuando yo presione este botón, nuestro juego vuelva a empezar. Para eso vamos a crear un nuevo "script" que lo vamos a llamar 'Btn', de botón, 'Start'. Dentro de esta clase, lo que vamos a hacer será algo muy parecido con el tema del Player. Voy a importar el paquete para controlar y lo único que vamos a decirle es que va a cargar, ya no 'Perdiste' sino el 'Main'. En esta clase, lo que vamos a hacer primero –estos métodos no son necesarios–, voy a crear un método público 'void' 'StartGame' y aquí lo único que voy a hacer es, si queremos ver un mensaje para saber que estamos haciéndolo de la forma correcta, 'start game'. Y pegamos la carga de nuestra escena, que sería 'Main'. Con esto ya tendremos nuestra clase creada, suficiente como para poder trabajar dentro de Unity. Aquí en Unity vamos a ir al botón –cuidado acá con el texto, o sea, si hacen clic, busquen que estén en el botón–, voy a minimizar o colapsar estas ventanas y voy a agregar el código dentro del componente botón. Lo arrastro y lo único que me queda es decirle que vamos a hacer un evento. Aquí donde dice On Click damos Más y buscamos, en tiempo de ejecución, nuestro botón y aquí debería de salir 'BtnStar' y 'StartGame', que es nuestro método. Grabamos y probamos en nuestra escena 'Main'. Ejecutamos, vamos a morir. En el juego pasan alrededor de diez segundos y aparece la ventana de 'Perdiste'. Voy a abrir la consola, presiono Reiniciar y el juego vuelve a empezar. Otra vez pierde. Voy a limpiar la consola. Sale nuestra vista de 'Perdiste', y al momento de darle clic a Reiniciar, empieza nuestro juego nuevamente.

Unity práctico: Videojuego 3D shooter

Desarrolla un videojuego del tipo shooter usando Unity como motor 3D. Crea los elementos visuales necesarios en un escenario y empieza a agregar a los personajes y enemigos.

3:36 horas (40 Videos)
Actualmente no hay comentarios.
 
Software:
Fecha de publicación:30/08/2016

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.