Noticias

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

Animaciones mecanim

Iniciado por brok, Octubre 19, 2015, 03:37:02 PM

Tema anterior - Siguiente tema
Octubre 19, 2015, 03:37:02 PM Ultima modificación: Octubre 19, 2015, 03:38:20 PM por brok
Hola a todos, mi problema es que no se mezcla la animacion idle con las animaciones al pulsar el boton, se reproducen si llega al final de la animacion correctamente. He investigado y he visto en videotutoriales, haciendolo de la misma manera que yo tanto las variables en bool y el mismo concepto del codigo, he llegado a pensar que un bug de unity pero a lo mejor estoy haciendo algo mal. using UnityEngine;
using System.Collections;public class jack : MonoBehaviour {
   public Animator ani;
    // Use this for initialization
    void Start () {
        ani = GetComponent<Animator>();
    }
    
    // Update is called once per frame
    void Update () {
        if (Input.GetButton("Fire1"))
        {
            ani.SetBool("salto", true);
        }        else
        {
            ani.SetBool("salto", false);
        }        if (Input.GetButton("Fire2"))
        {
            ani.SetBool("patada", true);
        }        else
        {
            ani.SetBool("patada", false);
        }        if (Input.GetButton("Fire3"))
        {
            ani.SetBool("puno", true);
        }        else
        {
            ani.SetBool("puno", false);
        }    }
   
} 

Igual has copiado mal tu código al foro, porque en el start tienes puesto
ani = GetComponent(); //Sin especificar qué componente... igual es eso
 

Octubre 19, 2015, 03:44:11 PM #2 Ultima modificación: Octubre 19, 2015, 03:46:05 PM por brok
Tengo puesto esto ani = GetComponent<Animator>();

Octubre 19, 2015, 06:55:16 PM #3 Ultima modificación: Octubre 19, 2015, 06:55:53 PM por Antonio
Hola Brok.

En el mapa gráfico del Mecanim, elige la transición que sale del estado idle y quita el tick de la opción "It has exit time", así la transición ocurrirá en el momento en que pulsas la tecla, sin necesidad de esperar a que acabe la animación de Idle (es decir, que la animación se interrumpirá para que pueda pasar a la otra).

Esto es algo con lo que tienes que ir jugando, por ejemplo, si la animación es la de un puñetazo, entonces seguramente no querrás que se interrumpa, así que dejaría la opción puesto para que las siguientes animaciones se activen una vez acabe la animación del puñetazo, pero eso no es así en el caso de idle.


Esta situación, es cosa de la versión Unity 5, si el videotutorial que estás viendo es de unity 4, eso se hacía de manera diferente, con una condicción extra, puede que por eso te hayas perdido en ese punto.

Octubre 19, 2015, 07:13:50 PM #4 Ultima modificación: Octubre 19, 2015, 07:43:13 PM por brok
Gracias Adngel, ya esta arreglado.

Octubre 19, 2015, 07:51:06 PM #5 Ultima modificación: Octubre 19, 2015, 07:54:16 PM por rabinali
Si sale aqui... 

Gracias Rabinali, ya lo veo.

Etiquetas: