Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Загрузка AssetBundle с HTTP-сервера (GET)

Важно: UNet — это устаревшее решение, а также новая многопользовательская и сетьсистема Unity, которая обеспечивает многопользовательскую игру. игры через компьютерную сеть. Подробнее
См. в Словарь
Решение (Netcode для GameObjects) находится в разработке. Дополнительную информацию и дальнейшие действия см. на веб-сайте Unity Netcode for GameObjects.

Чтобы загрузить AssetBundle с удаленного сервера, вы можете использовать UnityWebRequest.GetAssetBundle. Эта функция передает данные во внутренний буфер, который декодирует и распаковывает данные AssetBundle в рабочем потоке.

Аргументы функции принимают несколько форм. В своей простейшей форме он принимает только URL-адрес, с которого должен быть загружен AssetBundle. При желании вы можете указать контрольную сумму для проверки целостности загруженных данных.

В качестве альтернативы, если вы хотите использовать систему кэширования AssetBundle, вы можете указать либо номер версии, либо структуру данных Hash128. Они идентичны номерам версий или объектам Hash128, предоставленным в старой системе через WWW.LoadFromCacheOrDownload.

Подробнее

  • Эта функция создает UnityWebRequest и задает целевой URL-адрес для предоставленного аргумента URL-адреса. Он также устанавливает для команды HTTP значение GET, но не устанавливает другие флаги или настраиваемые заголовки.
  • Эта функция прикрепляет DownloadHandlerAssetBundle к UnityWebRequest. Этот обработчик загрузки имеет специальное свойство assetBundle, которое можно использовать для извлечения AssetBundle после загрузки и декодирования достаточного количества данных, чтобы разрешить доступ к ресурсам внутри AssetBundle.
  • Если вы указываете номер версии или объект Hash128 в качестве аргументов, он также передает эти аргументы в DownloadHandlerAssetBundle. Затем обработчик загрузки использует систему кэширования.

Пример

using UnityEngine; using UnityEngine.Networking; using System.Collections; public class MyBehaviour : MonoBehaviour { void Start() { StartCoroutine(GetAssetBundle()); } IEnumerator GetAssetBundle() { UnityWebRequest www = UnityWebRequestAssetBundle.GetAssetBundle("https://www.my-server.com/myData.unity3d"); yield return www.SendWebRequest(); if (www.result != UnityWebRequest.Result.Success) { Debug.Log(www.error); } else { AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3