Para la granada vamos a hacer algo similar a lo que hemos hecho con las balas. Vamos a cargar un elemento de tipo novedad de la Unity assets store y le vamos a hacer un rigid body y en el momento que hayamos encontrado un objeto haremos que genere una explosión, para ello tendremos una animación de explosión. Vamos a ir lo primero a Unity assets store y nos bajamos un modelo de granada como el que veis aquí. Voy a abrir el Unity como hecho hasta ahora, importamos el objeto, una vez importado vamos a meterlo en nuestra escena. [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] Lo que vamos a hacer es hacerlo un poquito más grande para que se vea más. [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] Vamos a bajar del prefab para aplicar el material. Entonces, como he dicho vamos a hacerlo un poquito grande para que se vea, porque casi no se ve. [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] Y esta va a ser nuestra granada. Y ahora vamos a agregar primero que gire por aire, vamos a ver el tamaño, este va a ser el tamaño de la granada. y en add component, lo siguiente que vamos a agregar, vamos a agregar el controller, lo vamos a crear. [AUDIO_EN_BLANCO] Y lo vamos a dejar ahí, le vamos a cambiar el nombre, y le vamos a meter como prefab. Entonces, lo que vamos a hacer es modificar el controler. [AUDIO_EN_BLANCO] Y es, vamos a crear un prefab de explosión. [AUDIO_EN_BLANCO] Entonces el prefab de explosión se activará, se creará, con demolición en la granada, con otro objeto, con demolición del objeto que destruimos. Y un objeto, es un game object, y creamos la prefab donde está nuestro objeto que es la granada, por así decir. Game object, instantiate, explosión junto a prefab, y posición, y la rotación la ponemos en la identidad. Eso quiere decir, por ejemplo que cuando esté en el escenario el game controller generará la explosión y explotará. Eso sería a nivel de radar. A nivel de player tenemos que hacer que la lance. Entonces para lanzar la granada lo primero vamos a agregar el prefab, para agregar el prefab vamos a utilizar una sistema de partículas del Unity assets store. Con ese sistema de partículas nuevamente lo abrimos en Unity y lo descargamos, y lo importamos, importamos a la escena. En este paquete tenemos diferentes sistemas de partículas que podeis utilizar tanto en este juego como en otros. [AUDIO_EN_BLANCO] Vamos a poner aquí importado, vamos a coger y vamos a utilizar lo que se llama partículas. Entonces elementals, prefabs, fire, tenemos diferentes, tenemos uno que es explosión. [AUDIO_EN_BLANCO] Boom y Big Bang. Ahora vamos a utilizar el explosión, como explosión cuando le explota la granada. Entonces para ello vamos a ir a fire, a granada y le vamos a decir la explosión es el prefab igual que [INAUDIBLE] Igual cuando yo tire la granada, cuando haga colisión en alguna parte la granada explotará. Esta granada la voy a crear en modo prefab y la voy a eliminar. La creo rápidamente, esta es la última granada, que está afuera. Le pongo el nombre como granada, elimino del objeto, a la escena y lo que voy a hacer es al player controller, le voy a dar crear. En artifact, voy a crear un método que va a ser throw grenade. Voy a poner cuando estoy lanzando la granada distancio en el prefab, en un output de granada que tengo que crear. [AUDIO_EN_BLANCO] La rotación, ahora mismo no me importa. Esto le devolverá la granada igual. Entonces, esta granada actual lo que voy a hacer durante toda la animación. [AUDIO_EN_BLANCO] Durante toda la animación dejarla en la mano del personaje y cuando termine la animación, en cuanto se termine la animación soltará la granada y se lanzará en una dirección. Lo que voy a hacer es mientras esté en esa animación pegarlo en esta posición, aquí lo que voy a hacer es la posición que va a ser la mano. [AUDIO_EN_BLANCO] Como hemos hecho antes, creo un game object, en select prefab, este va a ser el grenade. Mientras yo esté en está animación el lanzamiento de radar si os acordáis en este estado, es esta animación. [AUDIO_EN_BLANCO] Más o menos por aquí en el 50% de la animación lanzaré la granada. Vamos a lanzarla, tengo que mirar si estoy en el estado de throw grenade. Si estoy en el estado de throw grenade, según el valor de la animación si está en 0,5 o por encima de 0,5 y no se ha lanzado, la lanzo. Lo que tengo que hacer una vez que he creado output grenade lo establezco al player. [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO] El cast para saber si estamos en estado de throw grenade vamos a saberlo mediante el tipo de animación que hay activa, que es del tipo int. Entonces vamos a coger throw grenade tipo 0 id animation. En animator string to hash, baselayer.throwgrenade. Ahora el 0 identificador de la animación, que vamos a Unity Tenemos el estado de animación throw grenade que esto tiene un identificador internamente. Base layer es la cámara que estamos trabajando dentro de nuestro juego. Entonces el update, si m current imagination, load grenade, tengo defender null y m animator. Current animation, current animator, state info 0, es la capa principal. Vamos a poner info animator state intermedias. Namehash igual current grenade, quiere decir que estamos lanzando la granada y estamos en el estado de lanzar la granada. En ese caso si estamos en este estado de lanzando la granada y la granada actúa diferente de 1 y animator state info por normalized time, mayor o igual que 0.5f, igual a 50% de la animación. En ese caso current granada pasa a ser nulo y la activamos, al activarla le decimos que kinematic y ya no es kinematic la granada y le damos propiedad de salida. [AUDIO_EN_BLANCO] Velocidad de granada por forma de nuestro objeto en el eje de x z, plano x z. Igual la y la desestimamos, más up vertical, por un vector velocidad vertical de la granada. Es decir vamos a crear una velocidad en el eje x en el plano x z y otra velocidad vertical, de la granada. Recordemos acabar de definir este vector. Con esto la granada saldrá disparada y nosotros dejaremos de tenerla en uso. Entonces hay otra audición más, que es si la tenemos pero no todavía tenemos que lanzarla, solo soltarla, tenemos que ponerla en la posición de nuestra mano. Entonces lo que hay que hacer es si estoy lanzándola y todavía no la he soltado, le voy a decir que la posición de la granada actual es igual a la posición de mi mano. [AUDIO_EN_BLANCO] Por último en el throw grenade nos faltan un par de cosas, primero rigid boy, is kinematic y luego el grenade controler, no queremos que colisione mientras estamos lanzándola. Entonces le vamos a poner que enable false, y cuando la soltamos será la contrario, cuando la soltamos activamos el is kinematic, y activamos el grande controller. [AUDIO_EN_BLANCO]