forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   можно-ли моментально прервать КОРОУТИН во время выполнения "ожидания" ? (http://forum.boolean.name/showthread.php?t=18125)

Alex_Witcher 29.04.2013 14:51

можно-ли моментально прервать КОРОУТИН во время выполнения "ожидания" ?
 
Всем привет, подскажите по короутинам, можно-ли моментально прервать этот метод во время выполнения "ожидания" ? StopCoroutine не то, он выполняется только когда коротин заканчивает свой "шаг ожидания". Ну например выполняется yield return new WaitForSeconds(10) , и тут прежде чем прошло 10 секунд, я хочу завершить это "ожидание".

вот есть у меня:

IEnumerator Down()
{

for (int i=k;i>-1;i--)
{
ii=i;

if (i==1 && s==1)
{
t=0.1f;
}
//////Когда выполнилось условие ниже, надо прервать выполнение этого метода МОМЕНТАЛЬНО
if (faz==true)
{

t=0.0f;
StartCoroutine(Up());
GameObject.Find("Main Camera").GetComponent<mainscript>().skore++;
if (a[0]==shagost1)
b[0]=0;
if (a[2]==shagost3)
b[2]=0;

shag=(k-1)*2;
shagost=shag;
yield break;


}
else
{
shagost--;
}
guiTexture.texture=foods[i];

guiTexture.pixelInset=new Rect(-Screen.width*0.07f,Screen.height*pos[i],Screen.height*0.08f,Screen.height*0.08f);

yield return new WaitForSeconds(t);


}

}

yield break-вроде не помогает

pax 29.04.2013 15:05

Ответ: можно-ли моментально прервать КОРОУТИН во время выполнения "ожидания" ?
 
yield break прерывает корутину на этом месте. StopCoroutine останавливает ее если она что-то ожидает по yield return new WaitХХХ() или когда доходит до следующего yield.

И я не понял что значит МОМЕНТАЛЬНО?

Alex_Witcher 29.04.2013 16:22

Ответ: можно-ли моментально прервать КОРОУТИН во время выполнения "ожидания" ?
 
Цитата:

Сообщение от pax (Сообщение 258080)
yield break прерывает корутину на этом месте. StopCoroutine останавливает ее если она что-то ожидает по yield return new WaitХХХ() или когда доходит до следующего yield.

И я не понял что значит МОМЕНТАЛЬНО?

моментально-остановить, когда ожилает по иелд, а если в короунтине "name", вызвать StopCoroutine("name")-должно работать?

pax 29.04.2013 16:37

Ответ: можно-ли моментально прервать КОРОУТИН во время выполнения "ожидания" ?
 
Сработает на следующем после вызова функции yield


Часовой пояс GMT +4, время: 19:27.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot