动画师组件没有在navmeshagent上播放动画



我是一个真正的傻瓜,我是一名刚开始编程的艺术家,已经四处寻找解决方案,我能找到的最接近的是一篇与我有同样问题的reddit帖子,但即使没有人能找到解决方案。

我已经建立了一个动画师控制器,并为它提供了我需要的所有参数,走路、跑步、跳跃等。如果我使用玩家控制器脚本,一切都像一个魅力。现在,当我想把这个角色变成一个NPC,并放置我从团结手册中获得的巡逻AI脚本时,事情就不太好了。

我已经烘焙了我的navmesh,我也添加了NavMeshAgent组件。NPC四处滑动,但动画不播放

using UnityEngine;
using UnityEngine.AI;
using System.Collections;

public class Patrol : MonoBehaviour
{
Animator animator;
public Transform[] points;
private int destPoint = 0;
private NavMeshAgent agent;

void Start()
{
animator = GetComponent<Animator>();
agent = GetComponent<NavMeshAgent>();
// Disabling auto-braking allows for continuous movement
// between points (ie, the agent doesn't slow down as it
// approaches a destination point).
agent.autoBraking = false;
GotoNextPoint();
}

void GotoNextPoint()
{
// Returns if no points have been set up
if (points.Length == 0)
return;
// Set the agent to go to the currently selected destination.
agent.destination = points[destPoint].position;
// Choose the next point in the array as the destination,
// cycling to the start if necessary.
destPoint = (destPoint + 1) % points.Length;
}

void Update()
{
animator.SetBool("isRunning", true);
// Choose the next destination point when the agent gets
// close to the current one.
if (!agent.pathPending && agent.remainingDistance < 0.5f)
GotoNextPoint();

}
}

动画师的屏幕截图

Animator从默认状态(用橙色表示(开始,并在此基础上进行转换。根据动画师的屏幕截图,从默认状态开始,动画师可以进入空闲、SwordSlash和SwordJump状态,并且在空闲状态和运行状态之间没有转换。然而,您的代码将isRunning布尔设置为true。如果你想让它工作,你必须将isWalking bool设置为true,这样动画师就会进入SwordWalk状态。从那里,您可以将isRunning设置为true以转到Run animation。另一种方法是将isRunning改为isWalking(顺便说一句,我建议你学习1D混合树(

相关内容

  • 没有找到相关文章

最新更新