Как узнать конечные координаты анимации в Unity?
Я хочу узнать координаты корневой кости в конце анимации в Unity. Я пытался программно поместить объект с контроллером Animator на сцену, воспроизвести анимацию и выполнить Update() несколько раз. Но координаты немного отличаются от реальных. Есть ли способ узнать точные координаты в конце анимации?
Upd. Этот код должен работать как надо, но он работает некорректно:
animator.transform.position = new Vector3(0, 0, 0);
animator.transform.rotation = Quaternion.Euler(0, 0, 0);
animator.Play(_hashName, 0, 0);
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
duration = stateInfo.length;
float t = 0;
float delta = 0.01f;
while (t < duration)
{
animator.Update(delta);
t += delta;
}
Vector3 endCoords = animator.transform.position;
1 ответ
Наконец я нашел блестящий ответ на форуме Unity3d.
animator.SetTarget(AvatarTarget.Root, 1.0f);
animator.Update(0);
Vector3 position = animator.targetPosition;
Работает отлично.