0

问题:

我有一个带有Nav Mesh Agent组件的角色模型。它可以很好地移动到我告诉它移动的任何目的地(使用该NavMeshAgent.destination属性)。

但是,当我使用从商店下载的动画控制器时,这突然失败了。角色不会跑到目的地;相反,它会无休止地绕着它转圈。

我不确定为什么会发生这种情况,但我认为运行动画会以某种方式削弱角色的转动能力。Inspector,在相关 .fbx 文件的导入设置中显示:Average Angular Y Speed: 0.0 deg/s.

我真正非常不明白的是,为什么即使我已经明确地将NavMeshAgent.updatePosition属性NavMeshAgent.updateRotation设置为true. 我理解文档的方式,这应该使角色移动Nav Mesh Agent,而不是其他任何东西(包括动画)希望它移动?

我应该如何解决这个问题?我应该如何强制动画不干预运动?

4

2 回答 2

1

完成所有动画使用代码进行运动,您可以取消选中根运动并使用状态机值来获得更好的运动或使用根运动并让 mecanim 的重定向引擎进行混合,所以自己去看看会得到什么你有更好的结果,所以我猜你的问题是你的动画没有到位。

于 2016-04-22T03:56:29.100 回答
0

第一:Unity 最大的优点之一是它的机制。禁用根运动是一个很大的优势。

第二:你的角色跑来跑去的原因可能是因为动画师和导航网格代理发出了相互冲突的命令。使用 updatePosition 为 false 和 updateRotation 为 true。因此,动画师控制您移动的速度,而导航网格代理控制角速度。其他可能的原因是您的目的地无法到达。检查向量的 Y 分量并确保它们是共面的。

于 2016-09-13T04:43:02.347 回答