Unity 6.3
0 онлайн 3 гостей 3 в системе
Вход

DownloadHandlerTexture

класс в UnityEngine.Networking

Наследуется от:Networking.DownloadHandler

Выполнено в:UnityEngine.UnityWebRequestTextureModule

Описание

Подкласс DownloadHandler, специализирующийся на загрузке изображений для использования в качестве объектов Texture.

DownloadHandlerTexture хранит полученные данные в предварительно выделенной Unity Texture объекте. Он оптимизирован для загрузки изображений с веб-серверов, а декомпрессия и декодирование изображений выполняются в рабочем потоке.

Этот обработчик загрузки хранит полученные данные в буфере и по завершении загрузки декодирует данные в действительные Unity Texture Если текстура уничтожена, ее можно создать заново с помощью того же DownloadHandlerTexture объект.

Обработчик выполняет буферизацию, декомпрессию и создание текстуры в собственном коде. Кроме того, декомпрессия и создание текстуры выполняются на рабочем потоке вместо главного потока, что может улучшить время кадров при загрузке больших текстур.

DownloadHandlerTexture выделяет управляемую память только при окончательном создании самой Текстуры, что устраняет накладные расходы на сбор мусора, связанные с выполнением преобразования байтов в текстуру в скрипте.

Если вам нужно загрузить изображение по HTTP и использовать его как текстуру в Unity, настоятельно рекомендуется применять именно этот класс.

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Networking;
using System.Collections;

[RequireComponent(typeof(Image))] public class ImageDownloader : MonoBehaviour { Image _img;

void Start () { _img = GetComponent<UnityEngine.UI.Image>(); Download("https://www.mysite.com/myimage.png"); }

public void Download(string url) { StartCoroutine(LoadFromWeb(url)); }

IEnumerator LoadFromWeb(string url) { UnityWebRequest wr = new UnityWebRequest(url); DownloadHandlerTexture texDl = new DownloadHandlerTexture(true); wr.downloadHandler = texDl; yield return wr.SendWebRequest(); if (wr.result == UnityWebRequest.Result.Success) { Texture2D t = texDl.texture; Sprite s = Sprite.Create(t, new Rect(0, 0, t.width, t.height), Vector2.zero, 1f); _img.sprite = s; } } }

Свойства

Свойство Описание
textureВозвращает загруженную Текстуру или null. (Только чтение)

Конструкторы

Конструктор Описание
DownloadHandlerTextureКонструктор по умолчанию.

Статические методы

Метод Описание
GetContentВозвращает загруженную Текстуру или null.
Унаследованные члены 3

Свойства

СвойствоОписание
dataВозвращает необработанные байтовые данные, загруженные с удаленного сервера, или null. (только для чтения)
errorСообщение об ошибке, описывающее сбой, который произошел внутри обработчика загрузки.
isDoneВозвращает true, если этот DownloadHandler был проинформирован родительским UnityWebRequest о том, что все данные были получены, и этот DownloadHandler завершил любую необходимую обработку после загрузки. (Только для чтения)
nativeDataОбеспечивает прямой доступ к загруженным данным.
textСвойство удобства. Возвращает байт из данных, интерпретированных как строка UTF8. (Только чтение)

Открытые методы

МетодОписание
DisposeСигнализирует, что DownloadHandler больше не используется и должен очистить все ресурсы, которые он использует.

Защищенные методы

МетодОписание
CompleteContentОбратный вызов, вызываемый, когда все данные были получены от удаленного сервера.
GetDataОбратный вызов, вызываемый при доступе к свойству данных.
GetNativeDataОбеспечивает свободный доступ к загруженным данным в качестве NativeArray.
GetProgressОбратный вызов, вызываемый при доступе к UnityWebRequest.downloadProgress.
GetTextОбратный вызов, вызываемый при доступе к свойству text.
ReceiveContentLengthHeaderПолучен обратный вызов, вызванный с заголовком Content-Length.
ReceiveDataОбратный вызов, вызываемый при получении данных от удаленного сервера.