C# 使用1次后,如何取消动画?

C# 使用1次后,如何取消动画?,c#,unity3d,animation,C#,Unity3d,Animation,正如标题所说,在我攻击一次怪物失去10条生命后,我想取消一个动画,如果我再次攻击,怪物又失去10条生命,我想再次运行它。我已经试着找到答案了,但是我找不到任何有效的方法。到目前为止,在我第一次拍摄时,他失去了10条生命,动画变成了空闲状态,而不是动画。但第二次什么事也没发生,他就无所事事。除非我遗漏了什么,否则代码应该可以工作?(我仍然需要添加一些代码(如果它可以工作的话)) 对于任何有此问题的人,我发现了如何将参数类型从bool替换为trigger。我没有看到防御标志。你需要分享动画师的图表,

正如标题所说,在我攻击一次怪物失去10条生命后,我想取消一个动画,如果我再次攻击,怪物又失去10条生命,我想再次运行它。我已经试着找到答案了,但是我找不到任何有效的方法。到目前为止,在我第一次拍摄时,他失去了10条生命,动画变成了空闲状态,而不是动画。但第二次什么事也没发生,他就无所事事。除非我遗漏了什么,否则代码应该可以工作?(我仍然需要添加一些代码(如果它可以工作的话))


对于任何有此问题的人,我发现了如何将参数类型从bool替换为trigger。

我没有看到防御标志。你需要分享动画师的图表,这样我们就可以看到哪个状态和走向哪个。打开Animator窗口并选择动画。什么是防御标志?同样在这里:``isIdle=>isDamaged带有isDamaged为真的条件,isDamaged=>isIdle带有isIdle为真的条件``您永远不会更改为防御状态??那么它将如何到达那里呢。我们需要看看你的状态机。
```
public GameObject monster;
private Animator anim;
public GameObject player;
private Transform player_pos;
private Target target;
private float i = 0;
private float y = 0;
// Start is called before the first frame update
void Start()
{
    anim = monster.GetComponent<Animator>();
    player_pos = player.GetComponent<Transform>();
    target = monster.GetComponent<Target>();
}

// Update is called once per frame
void Update()
{
    if(target.health <= 0)
    {
        anim.SetBool("isDead", true);
    }
    if (target.health < 100 && i<1)

    {
        anim.SetBool("isDamaged", true);
        i++;
    }
    else
    {
        anim.SetBool("isDamaged", false);
        anim.SetBool("isIdle", true);
    }
    if (target.health == 90 && y < 1)

    {
        y++;
        anim.SetBool("isDamaged", true);
    }
    else
    {
        anim.SetBool("isDamaged", false);
        anim.SetBool("isIdle", true);
    }

}