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

How to know end coordinates of animation in Unity?

我想知道在Unity中动画结束时根骨骼的坐标。我试图以编程方式将带有 Animator 控制器的单元放到场景中,播放动画并多次执行 Update()。但坐标与真实略有不同。 有没有办法知道动画结束时的准确坐标?

更新。此代码应该可以正常工作,但不能准确工作:

        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;

终于在Unity3d论坛上找到了绝妙的答案。

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

完美运行。