我想知道Unity中动画结尾的根骨骼坐标。我试图将带有Animator控制器programmaticaly的单元放到场景中,播放动画并执行几次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;
答案 0 :(得分:1)
最后,我在Unity3d论坛上找到了精彩的答案。
animator.SetTarget(AvatarTarget.Root, 1.0f);
animator.Update(0);
Vector3 position = animator.targetPosition;
效果很好。