Unity 6.3
0 онлайн 57 гостей 3 в системе
Вход
Программирование в Unity Шаг 38 из 210

Введение в веб-запрос Unity APIs

UnityWebRequest — это сетевой API HTTP/HTTPS в Unity для взаимодействия с веб-сервисами, передачи файлов и потоковой передачи данных во время выполнения.

Общие виды использования системы веб-запросов Unity включают:

  • Загрузка содержимого во время выполнения, например:
    • AssetBundles с удаленных серверов, при использовании обычных AssetBundle или Addressables систем.
    • Текст/JSON для конфигурации, локализации и настройки в реальном времени.
    • Изображения (как Текстуры) и аудио (как AudioClips) для динамического контента.
    • Патчирование во время сборки или выполнения через удаленные манифесты.
  • Загрузка данных на серверы, например:
    • Метрика игрока.
    • Сохранённое состояние игры.
    • Журналы ошибок/исключений и отчеты о сбоях.
    • Пользовательские телеметрия и анализ.
  • Интеграция с сетями доставки контента, проверкой подлинности и безопасностью, платежными платформами, многопользовательскими службами, диагностикой и удаленными конвейерами построения.
  • Внедрение сетевых многопользовательских и пошаговых игр с низким уровнем трафика, таких как шахматы.

Архитектура

Система веб-запросов Unity состоит из двух уровней:

  • A Высокий уровень API (HLAPI) оборачивает низкоуровневый API и предоставляет удобный интерфейс для типичных операций.
  • Низкоуровневая API (LLAPI) обеспечивает максимальную гибкость для более сложных операций.

Система разбивает транзакцию HTTP на следующие операции:

  • Отправка данных на сервер.
  • Получение данных с сервера.
  • HTTP управление потоком (например, перенаправления и обработка ошибок).

Каждая из этих операций управляется определенным типом объекта, который можно использовать для настройки и управления аспектами транзакции:

  • Объект UploadHandler обрабатывает передачу данных на сервер.
  • Объект DownloadHandler обрабатывает получение, буферизацию и последующую обработку данных, полученных от сервера.
  • Объект UnityWebRequest управляет двумя другими объектами, а также управляет потоком HTTP. В этом объекте определяются пользовательские заголовки и URLs, а также хранится информация об ошибках и перенаправлениях.
Данные, отправляемые из пользовательского кода, проходят через UploadHandler и затем UnityWebRequest, прежде чем достичь веб-сервера HTTP. Данные, получаемые от сервера, проходят через UnityWebRequest и затем DownloadHandler, прежде чем достичь пользовательского кода.
Данные, отправляемые из пользовательского кода, проходят через UploadHandler и затем UnityWebRequest, прежде чем достичь веб-сервера HTTP. Данные, получаемые от сервера, проходят через UnityWebRequest и затем DownloadHandler, прежде чем достичь пользовательского кода.

Ниже приводится обзор транзакции HTTP на высоком уровне:

  • Создать объект UnityWebRequest.
  • Настроить UnityWebRequest объект.
    • Установить пользовательские заголовки.
    • Установите HTTP глагол (например, GET, POST, HEAD — пользовательские глаголы разрешены на всех платформах).
    • Комплект URL.
  • (Необязательно) Создайте обработчик загрузки и прикрепите его к веб-запросу.
    • Укажите данные, подлежащие загрузке.
    • Предоставьте форму HTTP для загрузки.
  • (Необязательно) Создайте обработчик загрузки и приложите его к веб-запросу.
  • Отправить веб-запрос.
    • Из коррутин, вы можете yield результат UnityWebRequest.SendRequest вызова, чтобы дождаться завершения запроса.
  • (Необязательно) Чтение полученных данных из обработчика загрузки.
  • (Необязательно) Чтение информации об ошибке, кода состояния HTTP и заголовков ответов из объекта UnityWebRequest.

Подробный пример кода, иллюстрирующий эти действия, см. в документации API для UploadHandlerRaw.

Дополнительные ресурсы