我有一个名为
Zombie1
的 Unity 资产存储导入游戏对象,其中包含导航网格代理组件集和动画器组件(屏幕截图:)以及名为 Z_Idle
的动画。我想对我的 Zombie1
游戏对象实现空闲动画,因此我加强了状态 parado
,布尔参数也称为 parado
,并在条件下转换到名为 Z_Walk
的 Parado-Walk
状态parado
设置为 true(动画窗口的屏幕截图:)。我还在 Zombie1
游戏对象中链接了这个脚本:
using UnityEngine;
public class Inimigo : MonoBehaviour
{
private Animator animator;
private UnityEngine.AI.NavMeshAgent agent;
void Start()
{
animator = GetComponent<Animator>();
agent = GetComponent<UnityEngine.AI.NavMeshAgent>();
}
void Update()
{
if (agent.velocity.magnitude == 0)
{
animator.SetBool("parado", false);
}
else if (agent.remainingDistance > agent.stoppingDistance)
{
animator.SetBool("parado", true);
}
else
{
animator.SetBool("parado", false);
}
}
}
当我按下播放按钮时,僵尸不执行动画。我该怎么办?
尝试添加一条调试语句来查看是否到达此代码块
else if (agent.remainingDistance > agent.stoppingDistance)
{
animator.SetBool("parado", true);
}
一旦您发现这部分代码是否已到达,您可能想检查它是否在设置为 true 后立即设置为 false。 要找到答案,您需要在更新函数中添加以下语句 Debug.Log(animator.GetBool("parado"));不断检查您的布尔值是否立即切换值,因为如果是这种情况,它不会保持移动状态足够长的时间,以便您可视化动画。 希望这有帮助!