2

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

1 回答 1

4

最后我在 Unity3d 论坛上找到了绝妙的答案。

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

它完美地工作。

于 2017-02-23T16:06:46.127 回答