Unity动画 - yield返回新的WaitForSeconds(secs)不起作用

时间:2016-11-11 17:04:40

标签: c# animation unity3d wait

当我使用此代码时,为什么Unity中没有动画播放?我怎么能让程序等待动画结束?在JavaScript(或UnityScript)中,这种方法起作用。

public bool Attacking { get; set; }
private Animator anim;

void Start() 
{
    anim = gameObject.GetComponent<Animator>();
}

private IEnumerator Attack()
{
    Attacking = true;

    anim.SetTrigger("Attack"); // this is not playing

    yield return new WaitForSeconds(attackLength);

    Attacking = false;
}

1 个答案:

答案 0 :(得分:0)

这就是你运行Coroutine的方法:

StartCoroutine(Attack());

StartCoroutine("Attack");

如果你尝试像普通的功能一样运行它,它就无法工作。

所以这是解决方案:

public void PlayAttack() 
{
    StartCoroutine(Attack());
}

Learn More