Как приостановить выполнение метода в Unity (C#)?

У меня есть метод, который надо приостановить без создания корутин и т.д.

Вот пример (не оригинальный метод):

void method()
{
    print("start");

    // задержка

    print("end");
}

Как это сделать?

P.S.: не предлагайте делать это через корутины, только без корутин


Ответы (3 шт):

Автор решения: Space Researcher

В данном случае один из самых простых вариантов - поставить поток в активное ожидание

System.Threading.Thread.Sleep(50); //millisec

Будьте внимательны, ведь сам поток от этого не освободит проц от нагрузки(хотя и нагрузки тут с гулькин нос), а только приостановит выполнение инструкций на 50 миллисекунд

→ Ссылка
Автор решения: Maxgmer

Я бы все же делал через корутины, потому что они действительно не блокируют поток, как уже указали в комментариях.

Конкретно ваш метод будет выглядеть так:

IEnumerator method()
{
    print("start");

    // Подождать одну секунду
    yield return new WaitForSeconds(1);

    print("end");
}

А запускаем его так:

StartCoroutine(method());
→ Ссылка
Автор решения: Yaroslav

Старт сам по себе может быть корутиной. Избегать корутину бессмысленно.

private IEnumerator Start ()
{
    Debug.Log("start");
    yield return new WaitForSeconds(1f);
    Debug.Log("end");
}
→ Ссылка