Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Detener el personaje cuando ataque

Iniciado por Moand, Mayo 23, 2015, 10:42:32 PM

Tema anterior - Siguiente tema
Buenas,
 
Estoy haciendo un juego 2D, por ahora el personaje se mueve y las animaciones van correctamente, pero a la ahora de atacar si mantengo la tecla de movimiento (WASD), no ataca. La única forma que tengo de hacerlo es que este totalmente quieto y pulse la tecla de atacar...
 
Me gustaría que si pulso la tecla de atacar el personaje se parara, hiciera el ataque y en el caso de que la tecla de movimiento siga pulsada, que siga andando. El movimiento esta con GetAxis, por si eso puede ser un problema.
 
Espero que alguien sepa la respuesta, y gracias por vuestro tiempo  

No es ningún problema el getAxis;
 
Crea un booleano, en la función que uses para atacar, o sino usas ninguna función, cambias el booleano a false, y al final cuando acabe de atacar lo pones en true, luego solo añades un if al movimiento, ejemplo:

Vector2 movimiento;
boolean atacando;
void Update () {
 mov();
 atacar();
}
void mov () {
 movimiento = Input.getAxis();
 if(!atacando)
   transform.Translate(movimiento);
}
void atacar() {
 if(Input.getKey(tecla)){
   atacando = true;
   animator.play();
 } else {
   if(animator.getCurrentAnimatorClipInfo(0) != tu animacion)
      atacando = false;
 }
}

Puede que hayan errores en el código pero hace mucho que no abro Unity, mira también la manera que tengas de animar, se usas booleanos puedes cambiar la sentencia a : "atacando = animator.getBool(tu animacion);" pero vamos, yo lo haría así

Muchas gracias buen hombre!
 
Yo había pensado algo como eso, pero no sabia plantearlo.... todavía me falta mucho por aprender jeje
 
Ahora solo tengo que terminar de adaptar mi script. Espero que no de muchos fallos.
 
De nuevo, gracias 

Etiquetas: