Noticias

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

Cambio de Animacion En un cuadro especifico

Iniciado por EleazarDugarte, Abril 20, 2016, 06:39:05 PM

Tema anterior - Siguiente tema
Abril 20, 2016, 06:39:05 PM Ultima modificación: Enero 01, 1970, 01:00:00 AM por EleazarDugarte
Muy buenas dias tardes o noches, soy practiicamente nuevo en unity y con las animaciones.  Mi problema es el siguiente: Poseo una animacion (que la llamare animacionA) que se esta ejecutando y se requiere que cuando cuando se le de al boton "C" del teclado, cambie a otro animator, pero cuando la animacionA este justo por la mitad, es decir, si la animacionA esta terminando, y se presiona el boton C esta animacionA debe llegar a la mitad para cambiar de animacion. Pregunta, ¿es posible obtener esa informacion, para agregarla al script? Creo que es con AnimatorStateInfo, pero no estoy seguro. Muchas gracias de antemano!. Saludos

No entendí muy bien tu pregunta pero si lo que querés saber es si se está reproduciendo la "animación A" lo que podes hacer es usar la variable GetCurrentAnimatorStateInfo que te dice si la animación se está reproduciendo o no. En base a eso supongo también que cuando decís cambiar de animator te referís a otro layer o animator controller no? en ese caso podes crear dos variables Animator(en cada una metes cada animator controller) luego pones que cuando se este reproduciendo la "animación A" el primer Animator lo desactivas, y el segundo lo activas. Te dejo como sería:
 

public Animator ani1;
public Animator ani2;
void Start () {
ani2.enabled = false;
}
void Update () {
if(ani1.GetCurrentAnimatorStateInfo().IsName("animacionA")){   //En donde puse 0 es el número del Layer del animator controller
          ani1.enabled = false;
            ani2.enabled = true;
    }
}

 
Tené en cuenta que si la "animacionA" es del animator1 no se va a llegar a reproducir ya que al empezar, automáticamente se desactiva(es por esto que digo que no entiendo bien tu pregunta, perdona si le erré mucho jajaja).

Crea una evento de animación, dentro de la animación(AnimationClip), que llame a una función y compruebe si se esta pulsando C. Si se pulsa C en ese momento accedemos a algún parámetro del AnimatorController utilizado en una Transición para cambiar de animación.

Etiquetas: