@MrAfitol

Что делать если не запускаеться сопрограмма?

Я хотел создать цикл с задержкой но посмотрев множество гайдов у меня получился такой результат:
private void OnChangingItem(ChangingItemEventArgs ev)
        {
            if (Check(ev.NewItem))
            {
                if (ev.Player.Health < 50)
                {
                    ev.Player.AddItem(ItemType.SCP500);
                    Timing.RunCoroutine(Healing());
                    //return;
                }
            }
        }

private IEnumerator<float> Healing()
        {
            ev.Player.AddItem(ItemType.SCP018);
            Player.AddItem(ItemType.SCP207);
            while (true)
            {
                ev.Player.AddItem(ItemType.SCP268);
                Player.Health++;
                yield return Timing.WaitForSeconds(3f);
            }
        }

Но почему то сопрограмма не хочет запускаться, возможно я что то не дописал ?

Полноценный код могу скинуть если этого не достаточно
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 1
@i__egor
Корутины запускаются как: StartCoroutine(Healing());
Что за Timing ? пиши просто: yield return new WaitForSeconds(3f);
С такой логикой ты будешь запускать новую корутину каждый раз когда у тебя OnChangingItem. Можешь попробовать остановить эту перед запускам ее еще раз: StopCoroutine(Healing())
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы