如何知道Unity中动画的结束坐标?

时间:2017-02-13 07:10:25

标签: unity3d unity3d-mecanim

我想知道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;

1 个答案:

答案 0 :(得分:1)

最后,我在Unity3d论坛上找到了精彩的答案。

animator.SetTarget(AvatarTarget.Root, 1.0f);
animator.Update(0);
Vector3 position = animator.targetPosition;

效果很好。