Я знаю, что это старый вопрос, но если я правильно понимаю вопрос, что-то вроде этого работает.DoLast () будет выполняться в конце сопрограммы.
IEnumerator FinishFirst(float waitTime)
{
print("in FinishFirst");
yield return WaitForSeconds(waitTime);
print("leave FinishFirst");
DoLast();
}
Я использую много аналогичного кода внутри подпрограмм, чтобы очистить и убить подпрограмму, если при ее создании была создана другая.(в основном для диалоговых окон с печатным текстом, где текст может измениться в любое время).