I’m facing a bit of a dilemna. The following code is being used in my animator wrapper to set a specific frame.
animator.speed = 1f;
// Set & Push Animator Params
animator.SetFloat("exampleParameter", 0.5f);
animator.Update(0f);
// Set Animation Frame
AnimatorStateInfo asi = animator.GetCurrentAnimatorStateInfo(0);
animator.Play(asi.fullPathHash, 0, animPlaybackTime);
animator.Update(0f);
animator.speed = 0f;
The problem I’m having is that in an animator where the current state is within a sub-state machine, the playback frame isn’t being correctly set, whereas in another object where the current state is not in a sub-state machine, it’s working just fine.
I’ve checked the values in the debugger, and animPlaybackTime
is being correctly set, yet asi.normalizedTime
never moves from 0f…
Update: Animator.SetTime() doesn’t appear to work properly either!