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