Ya puedo matar al enemigo, quiero que
cuando acabas con un grupo de venenos caiga un power up para
recuperar algo de vida. Así recompensamos al jugador que se para a
matar enemigos y no pasa de ellos, y como la vida del personaje va
cayendo sola, tienes que pensar si quieres jugar a avanzar rápido
sin que te dañen, o a ir matando todo para recoger los power ups.
Tenía que hacer el power up. Tenía en mente esas pildoritas de vida que dejaban caer algunos enemigos en Megaman, al ser en 3D lo más lógico era pensar en algún tipo de esfera más o menos decorada, pero una esfera son muchos polígonos y aún así vista pequeña se nota que no es perfecta. Así que preferí ir a otro tipo de figura más sencilla y al final me quedé con una pirámide cuadrangular. Son 8 polígonos, 4 triángulos que salen de la cúspide y otros 4 que hacen la base. Muy sencilla.
Quería que tuviera algo de aspecto especial, así que busqué formas de hacer que tuviera una textura en movimiento. Tras curiosear las substancias, al final las dejé porque parecía que generaban texturas proceduralmente pero no eran dinámicas, o no supe hacerlo. Pero vi un efecto de lava en movimiento en la assetstore, y me lo descargué y el efecto era bastante sencillo, solo mueves las coordenadas UV del modelo. Así que personalizando un poco las texturas y usando un material de tipo MKGlow conseguí el efecto de objeto brillante y en movimiento, aunque de cerca se aprecia muy bien, de lejos se ve algo, pero hay que fijarse, tampoco destaca mucho, y eso que lo he dejado más bien grandecito para ser un power-up.
He tenido que poner un box collider y
rigidbody al power-up, hacer que se cree al acabar con un grupo de
enemigos (en las pruebas y en el vídeo ese grupo es de un solo
enemigo) y que al cogerlo desaparezca y recupere algo de vida el
protagonista.
Pero no se si se entiende bien que eso
recupera vida. Tengo que dar una vuelta a la barra de vida, para ver
como indico esa subida, y que no sea solo que suba en ese momento,
que sino estás mirando no te enteras. Por ahora lo que he hecho es
poner un efecto de partículas sobre el personaje al coger el objeto,
para hacer ver que se cura.
Ese efecto es un efecto de partículas
que existía en un pack de la assetstore, y además de un efecto de
partículas tiene un pequeño script que da un flashazo con una luz.
Ese script está hecho en un javascript un poco extraño, tendría
que actualizarlo a c#, para mejorar algunas cosas, lo haré si tengo
tiempo para mejorar rendimiento. Ese script lo malo es que si das al
play al efecto 2 veces, la segunda el flashazo no funciona. Así que
no he podido dejar el efecto ya creado en el personaje y activarlo
cuando haga falta. Sino que lo instancio sobre la marcha cada vez que
hay que usarlo. Esto es menos eficiente, pero tampoco nos encontramos
un power up cada dos por tres, son ocasiones contadas.
También he tenido que hacer una
pequeña corrección, yo instanciaba el efecto en la posición del
personaje, pero si el personaje se movía durante el efecto, ya no le
seguía quedaba donde se hubiera quedado, así que he tenido que
poner el efecto colgando del personaje dinámicamente, aunque solo
dure 1 segundo.
En otro orden de cosas, pero
relacionado, he hecho más pequeño el collider del personaje, era un
poco más ancho de lo normal para cubrir un poco los brazos, pero
esto hacía que al jugar fuera difícil golpear al enemigo sin
recibir daño, así que lo he hecho más pequeó y he expuesto el
brazo derecho para poder poner un collider en el antebrazo derecho.
Así entre el collider del personaje más reducido, el de la espada y
el del otro brazo es más fácil que no atravesemos paredes ni nada
así, el del personaje recibe daño, el de la espada lo causa y el
otro está solo para que no atravesemos cosas. Ahora es más fácil
luchar sin recibir daño.
No hay comentarios :
Publicar un comentario