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

UnityWebRequestAssetBundle.GetAssetBundle

Declaration

public static Networking.UnityWebRequest GetAssetBundle(string uri);
public static Networking.UnityWebRequest GetAssetBundle(Uri uri);
public static Networking.UnityWebRequest GetAssetBundle(string uri, uint crc);
public static Networking.UnityWebRequest GetAssetBundle(Uri uri, uint crc);
public static Networking.UnityWebRequest GetAssetBundle(string uri, uint version, uint crc);
public static Networking.UnityWebRequest GetAssetBundle(Uri uri, uint version, uint crc);
public static Networking.UnityWebRequest GetAssetBundle(string uri, Hash128 hash, uint crc);
public static Networking.UnityWebRequest GetAssetBundle(Uri uri, Hash128 hash, uint crc);
public static Networking.UnityWebRequest GetAssetBundle(string uri, CachedAssetBundle cachedAssetBundle, uint crc);
public static Networking.UnityWebRequest GetAssetBundle(Uri uri, CachedAssetBundle cachedAssetBundle, uint crc);

Параметры

Параметр Описание
час URI пакета ассетов для загрузки.
crc (сохранить) Если это число не равно нулю, то оно будет сравниваться с контрольной суммой загруженных данных пакета ассетов. Если CRCs не совпадает, то будет зарегистрирована ошибка и пакет ассетов не будет загружен. Если установлено 0, то проверка CRC будет пропусчена.
версия Целое число, обозначающее номер версии, которая будет сравниваться с кэшируемой версией пакета ассетов для загрузки. Увеличение этого числа заставляет Unity повторно загружать кэшируемый пакет ассетов.

Аналогично параметру version для WWW.LoadFromCacheOrDownload.
хеш Хеш версии. Если этот хэш не соответствует хэшу для кэшируемой версии этого пакета ассетов, пакет ассетов будет загружен повторно.
cachedAssetBundle Структура, используемая для загрузки определенной версии AssetBundle в настраиваемый путь кэширования.

Возвращаемое значение

UnityWebRequest UnityWebRequest настроен на загрузку пакета ассетов Unity.

Описание

Создает UnityWebRequest, оптимизированный для загрузки пакета Unity через HTTP GET.

Этот метод создает UnityWebRequest, устанавливает метод на GET и устанавливает цель URL на строку uri аргумент. Не устанавливает никаких других флагов или пользовательских заголовков.

Этот метод прикрепляет DownloadHandlerAssetBundle к Генеральной Ассамблее UnityWebRequestЭто DownloadHandler имеет особый DownloadHandlerAssetBundle.assetBundle свойство, которое может быть использовано для извлечения пакета ассетов после загрузки и декодирования достаточного количества данных для обеспечения доступа к ресурсам внутри пакета.

Кроме того, DownloadHandlerAssetBundle поток данных в ringbuffer и декомпрессирует данные на рабочем потоке, экономя много выделений памяти по сравнению с загрузкой данных все сразу.

Если поставляется с целым числом version или Hash128 hash аргумент, DownloadHandlerAssetBundle использует систему кэширования пакетов ассетов. Если пакет ассетов был кэширован и не требует повторной загрузки, то UnityWebRequest завершится после того, как Asset Bundle завершит загрузку из кэша.

Кэшированные AssetBundles идентифицируются только по имени файла и версии. Все данные о домене и пути в url Поскольку кэшированные AssetBundles идентифицируются по имени файла, а не по полному URL, вы можете изменить каталог, из которого загружается пакет ассетов, в любое время. Это полезно для вывода новых версий игры и обеспечения того, чтобы файлы не были неправильно кэшированы браузером или CDN.

Обычно достаточно формировать путь кэша по имени файла AssetBundle. Но если существуют разные AssetBundle с одинаковым последним именем файла, возникают конфликты кэша. Со структурой CachedAssetBundle вы можете использовать CachedAssetBundle.name для настройки пути кэширования, чтобы избежать конфликтов кэширования. Вы также можете использовать это для организации структуры данных кэша.

Примечание, что хотя вы можете использовать этот API для загрузки пакета ассетов из локального хранилища (используя file:// URI или jar:file// на Android), это не рекомендуется, используйте AssetBundle.LoadFromFileAsync вместо этого.

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

public class MyBehaviour : MonoBehaviour { void Start() { StartCoroutine(GetText()); }

IEnumerator GetText() { using (UnityWebRequest uwr = UnityWebRequestAssetBundle.GetAssetBundle("https://www.my-server.com/mybundle")) { yield return uwr.SendWebRequest();

if (uwr.result != UnityWebRequest.Result.Success) { Debug.Log(uwr.error); } else { // Get downloaded asset bundle AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(uwr);

// Unload the AssetBundle bundle.Unload(true); } } } }