Jump to content
Sign in to follow this  
nomoregames

ANSWERED Eventos de animacion y Script

Recommended Posts

Hola de nuevo, vuelvo a tener problemas con el animador, pero en este caso con los eventos de animacion

Veréis, tengo un evento de animación y un script con un metodo (se llaman metodos?... no se) publico, mi intencion es que ese metodo se ejecute cuando se active el evento, pero me resulta imposible asignarlo... no me aparece el nombre de el metodo

 

Esto es lo que pone en el manual de unity que me tendria que aparecer en el inspector

La ventana del inspector de eventos de animación Y supongo que donde pone object se asignaria el objeto con el script que contenga el evento que quieres ejecutar

 

 

Sin embargo me aparece estoCaptura de pantalla (28).png

 

 

Por que ocurre? Que puedo hacer para solucionarlo? Como puedo elegir los scripts dentro de los cuales están los eventos que quiero seleccionar????

No es la primera vez que me ocurre y ya me ha frenado lo suficiente, hoy es el día en que venceré a los eventos de animación... Y gracias de antemano🤩

Share this post


Link to post
Share on other sites

No estoy muy seguro como lo tendrás montado, pero me suena que tendrías que crear dentro del script donde tengas las los las animaciones un public void()  

Share this post


Link to post
Share on other sites
 public Animator animador;
    
  
    
    public void DarLaPatada()
        {
        
        }

esto es lo que tengo... y también tengo asignado el animador que toca...

Share this post


Link to post
Share on other sites

No se exactamente como ira el Animator, yoestoy  usando el animation... pero no debería ser muy diferente, con todo échale un ojo al jotube que deberia de haber algo ^^'

 

EJEMPLO ANIMATION.

    public Animation anim;

    public AnimationClip animacion_1;
    public AnimationClip animacion_2;
    public AnimationClip animacion_3;

    public GameObject personaje;


     Use this for initialization
    void Start () {

        anim = personaje.GetComponentAnimation();
    }

    public void hablar()
    {
        anim.clip = animacion_1;
        anim.Play();
    }

 

Edited by pioj
POR FAVOR!!! usa el <> o el "quote" para pegar código.
  • Like 1

Share this post


Link to post
Share on other sites

@nomoregames, se supone que un animation event funciona de la siguiente forma:

  1. Es una PUBLIC  void function , una función pública de tu script...
  2. Ese script DEBE estar en el mismo Gameobject que tenga ese animation y animator...
  3. NO, no se puede llamar a un AnimationEvent de "otro" gameobject". El AnimationEvent está enlazado especificamente a la animation (AnimationClip) de ESE mismo GameObject.
  4. Cuando tengas claro en qué frame del Animation quieras añadir ese AnimationEvent, entonces le pulsas en su iconito para añadir uno...

 

Si por algún motivo necesitáis llamar a eventos/funciones de más de un GameObject relacionado, o bien sincronizar animaciones, o bien montar una coreografía de escena (vulgarmente llamada "secuencia cinemática") , podéis hacer uso del TIMELINE. TimeLine es un Asset pensado exactamente para hacer eso, y guardar una colección de animaciones en UN SOLO archivo, en lugar de tener que ir guardando assets de animations a saco... Echadle un vistazo cuando podáis...

Share this post


Link to post
Share on other sites

Finalmente el error estaba en no poner el script dentro de el objeto que tocaba.

Gracias a los dos por vuestra ayuda 🤩

Share this post


Link to post
Share on other sites
Sign in to follow this  

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...