El 14 de septiembre de 2017, publicamos una versión revisada de nuestra Política de privacidad. Tu uso continuado de video2brain.com significa que aceptas este documento revisado, por lo que te recomendamos que dediques unos minutos a leerlo y comprenderlo.

Unity práctico: Videojuego 3D shooter

Controlar nuestro personaje por código C#

Prueba ahora LinkedIn Learning sin cargo y sin compromiso.

Prueba gratis Mostrar modalidades de suscripción
Una vez que tenemos nuestro controlador implementado, pasaremos a gestionar el controlador mediante código en C#, para lo que crearemos una clase que nos ayude a reconocer los inputs y establecer la configuración del Animator.

Transcripción

En este video vamos a aprender a controlar a nuestro personaje utilizando código en C sharp. Para eso voy a ir aquí a mi proyecto y voy a crear una carpeta nueva que se va a llamar 'scripts'. La idea es que todos los códigos o clases en C sharp que tengamos se manejen dentro de esta carpeta. Vamos a hacer clic derecho, ahora vamos a ir a Crear C# Script. Nos va a preguntar qué nombre le vamos a poner: 'Player', para identificar. Al seleccionar el archivo 'Player', aquí podemos ver un "preview" pequeño de lo que es la clase 'Player'. Varias formas de abrir este archivo, la primera sería clic aquí, en Open o doble clic sobre este archivo. Vamos a hacer eso y por efecto nos abre el editor que viene con Unity. El editor puede ser cambiado, no hay ningún inconveniente, porque al final de cuentas es un editor de código. Ustedes pueden poner cualquier editor al que se hayan acostumbrado, Sublime Text, este de acá o cualquiera que crean conveniente. Si quieren hacer ese cambio, dentro de Unity van a Unity, Preferencias y en la vista External Tools, acá dice el editor de "scripts". Seleccionan acá y está ahorita MonoDevelop, pero podrían buscar por ejemplo algún editor tipo Sublime Text u otro. Seleccionan y a partir de ese momento ya los archivos se van a abrir en Sublime. Lo voy a cerrar y lo voy a dejar en el MonoDevelop. Vamos a abrir el archivo y tenemos el típico archivo en C sharp que extiende a una clase propia de Unity llamada 'MonoBehaviour', que lo que hace es implementar muchas cosas de las que ya son propias de Unity. Lo primero que vamos a hacer es crear una variable privada del tipo 'Animator', que la vamos a llamar 'anima', punto y coma. Este 'Animator' viene a ser la referencia que tenemos del Player. Aquí, en el soldado, este componente es el que estamos capturando o vamos a empezar a capturar. Antes de empezar a hacer eso, lo que vamos a hacer ahora dentro del editor de Unity es crear un nuevo 'GameObject' que lo vamos a poner en la ubicación 0-0 y lo vamos a llamar 'Player'. La idea que tenemos es que el soldado no esté directamente en el escenario como un "prefab", que es este cubo de aquí, sino que esté dentro de un 'GameObject'. ¿Por qué? Porque yo podría agregar más cosas sobre el Player sin afectar la estructura del 'GameObject'. Lo único que vamos hacer es copiar este componente para después eliminarlo dentro del "prefab". Vamos a ir acá y vamos a crear un nuevo componente 'Animator'. Como lo hemos copiado, vamos a pegar sus valores y es exactamente igual. Lo que tenemos es ahora un 'GameObject' principal y dentro, un objeto que es un "prefab", que es el modelo en 3D. Vamos a guardar y seguimos con el código. Dentro del método 'Start' propio de Unity, lo que vamos a hacer ahora es capturar a nuestro 'Animator'. En la variable 'anima' escribo igual, 'GetComponent', abro llaves, cierro llaves, abro y cierro paréntesis, y punto y coma. Lo que hace el 'GetComponent' es capturar el componente que tengamos dentro del archivo que tiene como referencia la clase 'Player'. En este caso, dentro de las llaves escribiremos 'animator'. Con esto estamos capturando el componente 'Animator' de nuestro 'GameObject'. Para empezar a utilizar nuestras animaciones, lo que vamos a hacer es crear un método que se comporte mejor con la física: 'FixedUpdate'. Aquí vamos a poder capturar por ejemplo cuando el usuario esté o no utilizando el teclado. Voy a crear una variable horizontal: h, igual, y voy a capturar el input que podría ser el "joystick", el "mouse", el teclado. ¿Cuál input vamos a capturar? Le voy a decir que obtenga cualquier input que tenga como base el ingreso de datos horizontales: "horizontal", punto y coma. Y voy a hacer lo mismo para vertical: "vertical" En estas variables yo capturo esos valores y lo que voy a hacer ahora es crear un método que me ayude a activar la animación. Lo vamos a llamar 'Animation', que va a recibir dos parámetros, ambos flotantes: horizontal y vertical. Lo único que tengo que hacer ahora es decir que voy a crear una variable que me permita saber cuando o no estoy caminando. Para eso, aquí en las propiedades, voy a crear una variable "booleana" que se llame 'walking', tal cual o parecido a nuestra condición. Dentro del método 'Animation' voy a escribir 'walking' y le voy a preguntar si existe la variable horizontal o vertical. Si existe alguna de ellas es porque estamos moviéndonos. Entonces le pregunto si horizontal es distinto de cero, que es flotante, o vertical si es distinto de cero. Cualquiera de esas dos que sea "true". Llamar a nuestra animación. ¿Y cómo accede a nuestra animación? Le digo punto, 'SetBool' y me pide dos parámetros. El primer parámetro es el nombre 'isWalking' y el segundo parámetro es el valor, 'walking', punto y coma. Ahora lo que vamos a hacer es llamar a este método 'Animation' dentro del método 'FixedUpdate'. Entonces pongo 'Animation', es un método, abro paréntesis, me pide pasar el parámetro de hache y el parámetro de ve. Grabo, vamos a nuestro proyecto en Unity y al Player tengo que agregarle el componente. ¿Qué componente? El 'Script'. Dos formas: o hago clic y arrastro el componente o lo agrego con Add Component, voy a Scripts y escojo Player. Cualquiera de las dos formas es válida. Grabo, ejecuto y si presiono la tecla, vemos que no hay ningún tipo animación. Voy a mover esta vista de aquí del 'Animator' para que puedan revisarlo. Estoy acá, aquí en realidad, presiono y miren qué sucede aquí, está activo. Suelto y ya no está activo. Si presiono la fecha hacia adelante, se activa. Si presiono la tecla W, se activa. Si suelto, se desactiva. ¿Qué sucede? Que necesitamos tener un parámetro adicional, porque es lo que hicimos al momento de crear la animación, que tiene que ser la velocidad mayor a 0.01. Sin embargo, si solamente para efectos prácticos yo remuevo el 'Speed' tanto de ida como de vuelta y grabo, presiono y ahí está mi animación, suelto y ya no está. Acá se puede ver la animación. Presiono, suelto y lo mismo pasa con la flecha, presiono o suelto. Con esto estamos viendo que podemos controlar las animaciones usando código en C sharp.

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.