Jump to content
Sign in to follow this  
Centauro5legs

Ayuda identificando un evento

Recommended Posts

Es un poco complicado explicar lo que quiero hacer, pero básicamente tengo un personaje que se mueve en base a sus animaciones. Es decir, el componente Animator le mueve, al "Preservar" sus transformaciones. Pero quiero que ese "movimiento" que hace en automático el Animator, pasárselo al padre. En teoría seria tan fácil como esto:

Update(){
  transform.parent.transform.position = transform.position;
  transform.parent.transform.rotation = transform.rotation;
  transform.localposition = vector3.zero;
  transform.localrotation = quaternion.identity;
}

Hasta cierto punto funciona, el problema es que da ciertos "lagasos", y a veces se ve como el personaje se retrocede. En especial en animaciones como correr o saltar, donde el personaje se desplaza mucho o cuando coliciona con una pared. Me imagino que esto pasa, porque el personaje se mueve, y a la mitad del desplazamiento entra el update y hace la corrección, lo que hace que todo se descuadre.

Creo que la solución seria hacer lo anterior, justo después de que el Animator mueva al personaje, pero antes de que se realicen las coliciones. En lugar de una vez por frame, que es lo que hace el Update.

Solo que no se que evento seria ese, intente con el UpdateFixed, el LastUpdate y el OnPostRender, y todos tienen el mismo fallo. Alguien puede darme un consejo?

Share this post


Link to post
Share on other sites

Dado que el Animator modifica las transform del hijo continuamente  no creo que así lo llegues a conseguir nunca de manera fluida. Además,  estás cambiando las del padre sin cambiar las del hijo. Esto quiere decir que el transform del child también debería ser 0 después de asignarlo. Y por qué no hacer que el Animator modifique el transform del parent y no la actual?

 

Share this post


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

×
×
  • Create New...