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

DownloadHandlerScript

класс в UnityEngine.Networking

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

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

Описание

Абстрактный базовый класс для пользовательских скриптуемых DownloadHandler осуществления.

Получить из DownloadHandlerScript и переопределите часть его обратных вызовов или все, чтобы реализовать собственную обработку данных для ключевых событий процесса загрузки.

Например, переопределите DownloadHandler.ReceiveData чтобы реализовать собственную обработку данных, приходящих с удалённого сервера, и переопределите DownloadHandler.ReceiveContentLengthHeader для реализации настраиваемой обработки при получении заголовка Content-Length.

UnityWebRequest система позволяет предварительное выделение управляемого кода байт массива, который используется для доставки загруженных данных к DownloadHandler.ReceiveData callback. Использование этой функции устраняет выделение памяти управляемого кода при использовании классов, полученных из DownloadHandlerScript-to захват загруженных данных.

Чтобы сделать DownloadHandlerScript работать с предварительно выделенным управляемым буфером, поставлять массив байтов в ctor. Размер массива байт ограничивает количество данных, которые могут быть получены в каждом ReceiveData вызов. Если данные поступают медленно, в течение многих кадров, предоставленный массив байт может быть слишком мал.

Примечание: Фактические загрузки происходят на рабочем потоке, но все DownloadHandlerScript обратные вызова работают на главном потоке. Избегайте выполнения вычислительно сложных операций с помощью этих обратных вызовов.

Дополнительные ресурсы: DownloadHandler.ReceiveData, DownloadHandler.ReceiveContentLengthHeader, DownloadHandler.CompleteContent.

using UnityEngine;
using UnityEngine.Networking;

public class LoggingDownloadHandler : DownloadHandlerScript {

// Standard scripted download handler - allocates memory on each ReceiveData callback

public LoggingDownloadHandler(): base() { }

// Pre-allocated scripted download handler // reuses the supplied byte array to deliver data. // Eliminates memory allocation.

public LoggingDownloadHandler(byte[] buffer): base(buffer) { }

// Required by DownloadHandler base class. Called when you address the 'bytes' property.

protected override byte[] GetData() { return null; }

// Called once per frame when data has been received from the network.

protected override bool ReceiveData(byte[] data, int dataLength) { if(data == null) { Debug.Log("LoggingDownloadHandler :: ReceiveData - received a null/empty buffer"); return false; }

Debug.Log(string.Format("LoggingDownloadHandler :: ReceiveData - received {0} bytes", dataLength)); return true; }

// Called when all data has been received from the server and delivered via ReceiveData.

protected override void CompleteContent() { Debug.Log("LoggingDownloadHandler :: CompleteContent - DOWNLOAD COMPLETE!"); }

// Called when a Content-Length header is received from the server.

protected override void ReceiveContentLengthHeader(ulong contentLength) { Debug.Log(string.Format("LoggingDownloadHandler :: ReceiveContentLength - length {0}", contentLength)); } }

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

Конструктор Описание
DownloadHandlerScriptСоздайте DownloadHandlerScript, который выделяет новые буферы при передаче данных обратным вызовам.
Унаследованные члены 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Обратный вызов, вызываемый при получении данных от удаленного сервера.