当我使用此代码时,为什么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;
}
答案 0 :(得分:0)
这就是你运行Coroutine的方法:
StartCoroutine(Attack());
或
StartCoroutine("Attack");
如果你尝试像普通的功能一样运行它,它就无法工作。
所以这是解决方案:
public void PlayAttack()
{
StartCoroutine(Attack());
}