@Ezekiel4
Охотник на пиратов и сборщик монолитов

Почему изображение не скачивается?

У каждого пользователя на сайте есть аватарка, я её скачиваю с помощью кода:
public IEnumerator GetRemoteTexture(string url, Action<Texture2D> response) {
	UnityWebRequest request = UnityWebRequestTexture.GetTexture(url);
	yield return request.SendWebRequest();
	response(DownloadHandlerTexture.GetContent(request)); // тут выбивает ошибку
}

Выбивает следующую ошибку: InvalidOperationException: Texture has not yet finished downloading. Скорее всего, она возникает в случаях, когда пользователи заранее не установили на сайте аватарку. Однако доступа к сайту нет, чтобы там что-то подправить.
Попробовал подождать ответа UnityWebRequest.isDone, но это тоже не работает:
public IEnumerator GetRemoteTexture(string url, Action<Texture2D> response) {
	UnityWebRequest request = UnityWebRequestTexture.GetTexture(url);
	request.SendWebRequest();

	while (!request.isDone)
		yield return null;

	response(DownloadHandlerTexture.GetContent(request));
}


Подскажите, как можно эту проблему решить? Допустимо, чтобы он вернул null или ресурс по умолчанию.
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
@Ezekiel4 Автор вопроса
Охотник на пиратов и сборщик монолитов
Ответили в другом месте, суть в том, чтобы при попытках получения удалённого ресурса проверять статус запроса:
public IEnumerator GetRemoteTexture(string url, Action<Texture2D> response) {
	UnityWebRequest request = UnityWebRequestTexture.GetTexture(url);
	yield return request.SendWebRequest();
	if (request.result != UnityWebRequest.Result.Success){
		response(null);
	} else {
		response(DownloadHandlerTexture.GetContent(request));
	}
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы