Проблема с IEnumerator в скрипте

Программирование на Юнити.

Проблема с IEnumerator в скрипте

Сообщение flapyheh 29 янв 2024, 17:07

Добрый день, работаю над своей первой игрой. Проблема такова, в скрипте я использую IEnumerator. Вызываю его, однако на строчке "yield return new WaitForSeconds(4.2f);" скрипт останавливается и не хочет дальше работать

Код:
Синтаксис:
Используется csharp
public class MonsterScreamer : MonoBehaviour
{

    public AnimController AnimController;

    public IEnumerator IMonsterScreamer()
    {
        AnimController.PlayerCantMove(false);
        AnimController.CameraTransform.LookAt(AnimController.NavMonsterTrigger.transform);
        AnimController.NavMonster.SetActive(false);
        UnityEngine.Debug.Log("gigaf");
        AnimController.MainScreamerMonster.SetActive(true);
        AnimController.ScreamerMonsterAnimator.SetTrigger("move");
        yield return new WaitForSeconds(4.2f);
        StartCoroutine(AnimController.Fade(10f));
        AnimController.PlayerTransform.localPosition = new Vector3(560.5f, 22.7f, 130.5f);
        AnimController.PlayerTransform.localRotation = Quaternion.Euler(0, 0, 0);
        AnimController.Hiding = false; //игрок не прячется
        AnimController.NavMonster.transform.localPosition = new Vector3(566f, AnimController.NavMonster.transform.position.y, 109f);
        AnimController.NavMonsterScript.target = null;
        AnimController.NavMonsterScript.currentWPTrig = null;
        AnimController.NavMonsterScript.GoToNextWP();
        AnimController.MainScreamerMonster.SetActive(false);
        AnimController.NavMonster.SetActive(true);
        AnimController.PlayerCanMove();
    }
}
flapyheh
UNец
 
Сообщения: 2
Зарегистрирован: 29 янв 2024, 13:03

Re: Проблема с IEnumerator в скрипте

Сообщение 1100001001 30 янв 2024, 06:29

Ну вы же его остановили этой строчкой на количество секунд которые указали.
_https://vk.ru/belovedtoy
Аватара пользователя
1100001001
UNITрон
 
Сообщения: 276
Зарегистрирован: 26 сен 2012, 05:34
  • Сайт

Re: Проблема с IEnumerator в скрипте

Сообщение flapyheh 30 янв 2024, 08:40

1100001001 писал(а):Ну вы же его остановили этой строчкой на количество секунд которые указали.

Да, но а как возобновить работу скрипта?
flapyheh
UNец
 
Сообщения: 2
Зарегистрирован: 29 янв 2024, 13:03

Re: Проблема с IEnumerator в скрипте

Сообщение 1100001001 31 янв 2024, 05:25

Как только пройдёт время которое вы указали в WaitForSeconds(4.2f) то есть 4.2 секунды, скрипт сам продолжится со следующей строки. Добавьте после WaitForSeconds строку Debug.Log("Время прошло"); и увидите в консоли когда скрипт продолжает свою работу.
_https://vk.ru/belovedtoy
Аватара пользователя
1100001001
UNITрон
 
Сообщения: 276
Зарегистрирован: 26 сен 2012, 05:34
  • Сайт


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 12