Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 29.04.2013, 14:51   #1
Alex_Witcher
Нуждающийся
 
Регистрация: 15.02.2012
Сообщений: 53
Написано одно полезное сообщение
можно-ли моментально прервать КОРОУТИН во время выполнения "ожидания" ?

Всем привет, подскажите по короутинам, можно-ли моментально прервать этот метод во время выполнения "ожидания" ? 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-вроде не помогает
__________________
unity3d, 1я поделка.
https://play.google.com/store/apps/d...GVsaWNmcmVlIl0.
(Offline)
 
Ответить с цитированием
Старый 29.04.2013, 15:05   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: можно-ли моментально прервать КОРОУТИН во время выполнения "ожидания" ?

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

И я не понял что значит МОМЕНТАЛЬНО?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 29.04.2013, 16:22   #3
Alex_Witcher
Нуждающийся
 
Регистрация: 15.02.2012
Сообщений: 53
Написано одно полезное сообщение
Ответ: можно-ли моментально прервать КОРОУТИН во время выполнения "ожидания" ?

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

И я не понял что значит МОМЕНТАЛЬНО?
моментально-остановить, когда ожилает по иелд, а если в короунтине "name", вызвать StopCoroutine("name")-должно работать?
__________________
unity3d, 1я поделка.
https://play.google.com/store/apps/d...GVsaWNmcmVlIl0.
(Offline)
 
Ответить с цитированием
Старый 29.04.2013, 16:37   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: можно-ли моментально прервать КОРОУТИН во время выполнения "ожидания" ?

Сработает на следующем после вызова функции yield
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com