Запуск StartCoroutine друг за другом

Общие вопросы о Unity3D

Запуск StartCoroutine друг за другом

Сообщение Altodor 22 фев 2012, 21:16

Элементарный код:
Синтаксис:
Используется csharp
for( int k=0; k<5; k++ )
{
    StartCoroutine("DownloadImage",k);
}

IEnumerator DownloadImage(int k)
{
    WWW newWWW = new WWW(picturePath[k]);
    yield return newWWW;
    uploadedTexture[k] = newWWW.texture;
}
 

не работает. Есть список адресов картинок - есть массив, куда надо эти картинки загрузить. Так вот, чаще всего загружает 2-3 картинки, остальные не загружает. Причём каждый раз по-разному, то первые 2 загрузит, то первые 4, то только 1. В чём проблема? WWW ведь друг с другом врятли могут конфликтовать? Корутины вроде тоже сами по себе независимые.. Пробовал ставить маркеры в дебаге - так на последних корутинах он просто выходит из функции, не выполняя даже строчку yield return newWWW. Не понятно мне, объясните пожалуйста.
Altodor
UNIт
 
Сообщения: 82
Зарегистрирован: 19 сен 2010, 07:58

Re: Запуск StartCoroutine друг за другом

Сообщение gnoblin 22 фев 2012, 22:21

можно сделать фикл внутри корутины,
можно делать yield return StartCoroutine() чтобы корутины выполнялись последовательно

почему косячит - хз
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Запуск StartCoroutine друг за другом

Сообщение artk 22 фев 2012, 23:00

Может проблема с синхронизацией массива с текстурами. А зачем вам коротины? Грузите в цикле.
Аватара пользователя
artk
Старожил
 
Сообщения: 749
Зарегистрирован: 22 май 2011, 12:22


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12