как задать выполнение функции в течении определённого времени?

есть кнопка и когда на неё нажимаешь начинает выполняться функция, и как сделать так что-бы функция выполнялась в течении времени?


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

Автор решения: Yaroslav

Manual/Coroutines

private IEnumerator _sometnig;

public void DoSomething (float time)
{
    _sometnig = SometnigCoroutine(time);
    StartCoroutine(_sometnig);
}

public void StopSomething ()
{
    StopCoroutine(_sometnig);
}

private IEnumerator SometnigCoroutine (float time)
{
    float Timer = 0;
    while (Timer < time)
    {
        yield return null; // wait new frame
        Timer += Time.deltaTime;
        Debug.Log("I am fine "+Mathf.FloorToInt(time/Timer*100f)+"%");
    }
    Debug.Log("Iol, i finished =(");
}
→ Ссылка