Jump to content
Sign in to follow this  
nomoregames

como acceder a los transforms dentro de un animation clip??

Recommended Posts

Buenas tardes.

Sin rodeos, os cuento mi problema.

Tengo la siguiente animación

Captura.PNG

 

y necesito acceder a el transform de ControlBrazosFondo_Target por script, y asignarlo a una variable en tiempo real (mientras el juego se ejecuta).  Pero no sé como acceder a ese transform especifico, alguna idea?

 

Gracias por la ayuda 🤗

 

Share this post


Link to post
Share on other sites

No acabo de entender el problema. Si tienes la transform, porqué no la asignas al gameobject que la requiera como una propiedad? O sea:

[SerializeField] private Transfom tControlBrazoFondo;

Y la pones en el editor. O creas un get/set si es quieres cambiarla en tiempo real:

public Transform tControlBrazoFondo {get; set;}

Share this post


Link to post
Share on other sites

Te cuento

 

Los transforms que aparecen en la animación son de dos puños. Estos, al presionar una tecla se mueven de sitio para golpear mediante LateUpdate, después de dar el golpe necesito que retroceda hasta la posición que tenia en un principio, que era cuando se estaba reproduciendo la animación Brazos_Idle, para ello tengo una variable Vector3 que, en el momento en el que se deja de estar en modo "Brazos_Idle" y de el piño, guarde la posicion que en ese momento tengan los brazos dentro de la animación Brazos_Idle.... 

Es decir, necesito guardar la posición de el transform que ay dentro de el animation clip en el frame exacto en el que se deje de estar en modo "idle" y se este dando el puñetazo...

 

No se si me explico 

 

Share this post


Link to post
Share on other sites

Bien... para solucionar este problema se me ha ocurrido hacer un 

if ( "animacion se esta reproduciendo"){var tr = puño.transform}

La cosa seria, como hago para saber si se esta reproduciendo o no esa animación en especifico????

Share this post


Link to post
Share on other sites
1 hour ago, nomoregames said:

Bien... para solucionar este problema se me ha ocurrido hacer un 


if ( "animacion se esta reproduciendo"){var tr = puño.transform}

La cosa seria, como hago para saber si se esta reproduciendo o no esa animación en especifico????

 

https://docs.unity3d.com/ScriptReference/Animator.GetCurrentAnimatorStateInfo.html

 

Share this post


Link to post
Share on other sites

Yo le pongo behaviours a los clips, estos tienen eventos para stateenter y stateexit. Los enganchas en un componente y va de fábula para saber cuando empieza o termina la animación, ya que siempre hay mucho delay por muchos motivos de la configuración del clip. El Getcurrent te va a obligar a estar "preguntando" siempre.

Share this post


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

×
×
  • Create New...