Ожидание выполнения корутины
Добавлено: 30 мар 2023, 21:24
Башня должна стрелять с задержкой между выстрелами пока есть снаряды, снаряды кончились, башня должна уйти на перезарядку. Для этого написал такой код
При таком коде получается что включается анимация перезарядки башни, но башня продолжает стрелять без анимации, а анимация перезарядки вечная потому что не меняется параметр Reload на false. Вроде все правильно написано, а работать не хочет не в какую. Как можно сделать, чтоб корутина ждала пока не выполнится корутина внутри?
Синтаксис:
Используется csharp
private IEnumerator DelayShoot()
{
while (true)
{
anim.SetAnimTrigger("Shoot");
OnDamage();
CountAmmo--;
if (CountAmmo <= 0)
yield return ReloadTimer();
yield return new WaitForSeconds(3);
}
}
private IEnumerator ReloadTimer()
{
anim.SetAnimBool("Reload", true);
yield return new WaitForSeconds(2);
anim.SetAnimBool("Reload", false);
CountAmmo = MaxCount;
}
{
while (true)
{
anim.SetAnimTrigger("Shoot");
OnDamage();
CountAmmo--;
if (CountAmmo <= 0)
yield return ReloadTimer();
yield return new WaitForSeconds(3);
}
}
private IEnumerator ReloadTimer()
{
anim.SetAnimBool("Reload", true);
yield return new WaitForSeconds(2);
anim.SetAnimBool("Reload", false);
CountAmmo = MaxCount;
}
При таком коде получается что включается анимация перезарядки башни, но башня продолжает стрелять без анимации, а анимация перезарядки вечная потому что не меняется параметр Reload на false. Вроде все правильно написано, а работать не хочет не в какую. Как можно сделать, чтоб корутина ждала пока не выполнится корутина внутри?