Я загружаю текстуры из URL, используя www в C#. Поскольку есть многократные текстуры, я хочу загрузить их асинхронно и показать их в единстве 4.6 Image, изменив их на спрайт, так что для этого я хочу передать ссылку Image как параметр out в сопрограмму coroutine, которая, в свою очередь, даст текстуру. Я пробовал callback/делегаты, но это не служит моей цели. помогите мне решить эту проблему. Я просто хочу, чтобы эти изображения были назначены элементу пользовательского интерфейса и не хотят их хранить вручную и назначать позже. Поскольку это не лучший подход. хотя подход, который я использую, также не то, что он должен, поэтому предложите мне, как я могу сделать это без усилий.Мне нужна замена как сопрограммы и итераторы не могут иметь или изменить параметры
0
A
ответ
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
Отлично! Работал просто отлично –
Почему не обратные вызовы или делегаты служат своей цели? Что вы пробовали? Не могли бы вы показать нам? Или, по крайней мере, уточнить, что вы сделали и почему это не сработает для вас? – Bart