1

在我的项目中,我使用的是从 Unity 的标准资产导入的 ThirdPersonController。我还有 Ethan Figure 的 ThirdPersonAnimatorController。我在场景中设置了一个 NavMesh,并使用 Animator 和 NavMeshAgent 创建了一个 Ethan GameObject。到目前为止,NavMeshAgent 工作正常,但我希望运动与动画同步。

我对混合树了解不多,但我知道您可以在脚本中设置参数来控制动画。在这种情况下,ThirdPersonAnimatorController 有两个参数,turn 和 forward(都是从 0 到 1 的浮点数,表示转弯角度和移动速度)。所以混合树是一个二维自由形式笛卡尔。

我唯一遇到的问题是从 NavMeshAgent 获取值(例如转弯速度和移动速度),因此我可以将其传递到混合树中。

4

1 回答 1

0

您可以使用velocity.magnitudeNavMeshAgent 的:

        float speed = GetComponent<NavMeshAgent>().velocity.magnitude;

然后,您可以使用Debug.Log语句尝试将其除以某个值,以便获得某个范围内的数字,或者仅使用普通幅度并更改 Animator Controller 值。

于 2020-04-16T09:25:19.553 回答