【发布时间】:2020-03-21 04:45:55
【问题描述】:
我有一个敌人目前一直在攻击,攻击之间没有停止。我想让敌人在再次攻击之前等待一段时间,以模拟敌人“休息”并让玩家有机会在不攻击的情况下攻击他。我需要协程来完成我的动画播放,这样它就可以在等待时进入空闲动画:
IEnumerator Attacking()
{
yield return new WaitForSeconds(animLenght);
isAttacking = false;
}
我已经制作了另一个协程等待一秒钟,然后再次启用攻击,但它不起作用。敌人攻击不刹车,比如协程不起作用:
IEnumerator WaitForAttack()
{
yield return new WaitForSeconds(1);
}
我已将 WaitForAttack() 协程放入我的攻击函数中:
private void Attack()
{
StartCoroutine(WaitForAttack());
isAttacking = true;
StartCoroutine(Attacking());
}
我想知道我在协程方面做错了什么,因为我刚刚开始使用协程,这个问题困扰了我很长时间。
【问题讨论】:
-
WaitForAttack实际上什么都不做。只有一个 return 语句,所以如果你删除Attack中的调用,你就会明白为什么你的代码没有按照你期望的方式工作。 -
我明白了。谢谢。