2014-12-11 1 views
0

Я загружаю текстуры из URL, используя www в C#. Поскольку есть многократные текстуры, я хочу загрузить их асинхронно и показать их в единстве 4.6 Image, изменив их на спрайт, так что для этого я хочу передать ссылку Image как параметр out в сопрограмму coroutine, которая, в свою очередь, даст текстуру. Я пробовал callback/делегаты, но это не служит моей цели. помогите мне решить эту проблему. Я просто хочу, чтобы эти изображения были назначены элементу пользовательского интерфейса и не хотят их хранить вручную и назначать позже. Поскольку это не лучший подход. хотя подход, который я использую, также не то, что он должен, поэтому предложите мне, как я могу сделать это без усилий.Мне нужна замена как сопрограммы и итераторы не могут иметь или изменить параметры

+0

Почему не обратные вызовы или делегаты служат своей цели? Что вы пробовали? Не могли бы вы показать нам? Или, по крайней мере, уточнить, что вы сделали и почему это не сработает для вас? – Bart

ответ

1

Попробуйте сопрограмму с обратными вызовами

StartCoroutine(Request(delegate(WWW www){ 
    print("Success"); 
    //do something with www.texture here 
},delegate(WWW www){ 
    print("Failure"); 
})); 


IEnumerator Request(System.Action<WWW> SuccessCallback, System.Action<WWW> FailureCallback) { 
    WWW www = new WWW("http://my-page.com/"); 
    yield return www; 
    if(www.error == null){ 
     SuccessCallback(www);  
    } else { 
     FailureCallback(www); 
    }  
} 
+0

Отлично! Работал просто отлично –