Unity - 将NavMeshAgent与Animator配对

时间:2018-06-12 19:13:22

标签: c# animation unity3d unityscript navmesh

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

我对混合树知之甚少,但我知道你可以在脚本中设置参数来控制动画。在这种情况下,ThirdPersonAnimatorController有两个参数,转向和向前(两个参数都是从0到1的浮点数,表示转弯角度和移动速度)。因此,混合树是2D自由形式笛卡尔。

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

1 个答案:

答案 0 :(得分:0)

您可以使用NavMeshAgent的velocity.magnitude

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

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