- Home /
[Mecanim] How to manualy set the time on a state by code?
I have a vehicle with a driving wheel animated from user inputs. I have an animation for the character's hands sitting in the vehicle. The first frame of the animation being when the wheel is turned completely to the left and the last frame completely to the right. I want to set the time of the animation on every frame according to the wheel rotation.
I can achieve this by using something like
animator.Play("WheelRotationAnim", animator.GetLayerIndex ("RightArm"), normalizedTime);
But the character has a transition where he removes his right hand from the wheel and puts it on the seat. To have a smooth transition from the right hand wheel position to the seat, I used :
animator.CrossFade ("HandOnSeatAnim", 0.2f, animator.GetLayerIndex ("RightArm"), normalizedTime);
This works for transitionning from the wheel animation to the seat but not the other way around since the target animation will always start at the beginning.
Is there a simple way to set the time of an animation state by script in Update() and transition to and from that state at the desired time frame?
In the end I solved my problem by transitionning only when the player is not giving any steering inputs and the steering wheel is in a neutral position. It does not give the cool result that I wanted but since the character doesn't have to move his hand very often, it'll do the trick.
Your answer
Follow this Question
Related Questions
Mecanim - changing animation clip speed, through script? 4 Answers
How do I set the time of an animation playing in the animator (Mechanum) 5 Answers
How to generate Mecanim Sub-state namehash? 6 Answers
Set the current time / frame of a Mecanim animation 5 Answers
Synchronize two animator states to have the same normalized time - Mecanim 0 Answers