Страница 1 из 1

Загрузка AssetBundles

СообщениеДобавлено: 16 сен 2019, 20:13
levka4
Для загрузки дополнений в игре использую assetbundles, которые лежат на хостинге. У меня на всех моих устройствах все работает отлично, но вот некоторые пользователи не могут загрузить совсем ничего. Причем я попросил одного из них скачать файлик дополнения по прямой ссылке в браузере и у него все скачалось, но в приложении постоянно выскакивает ошибка. Может кто знает с чем это может быть связано?

Вот код метода загрузки:
Синтаксис:
Используется csharp
   
private IEnumerator LoadBundleFromServer(int addonId, Action<AssetBundle, int, Hash128> response, Action<float> progress)
    {

        while (!Caching.ready)
        {
            yield return null;
        }

        //Check available space

        int spaceAvailable = DiskUtils.CheckAvailableSpace();
        if (spaceAvailable < MaxSpaceForDownloading) {
            LoadingError(2);
            Debug.LogErrorFormat("Not enough space");
            yield break;
        }

        //Check version

        var request = UnityWebRequest.Get(GetUrlOfBundle(addonId, 1));
        yield return request.SendWebRequest();
        Hash128 version = new Hash128();

        if (!request.isHttpError && !request.isNetworkError)
        {
            version = Hash128.Parse(request.downloadHandler.text.ToString().Trim());
        }
        request.Dispose();

        if (!version.isValid) {
            LoadingError(1);
            Debug.LogErrorFormat("error request version");
            yield break;
        }
        Debug.Log("Version to download - " + version);


        //Start downloading
        UnloadCurrentAssetBundle();
        if (!Caching.ClearAllCachedVersions(GetUrlOfBundle(addonId, 2))) {

            LoadingError(1);
            yield break;
        }

        string url = GetUrlOfBundle(addonId, 0);

        request = UnityWebRequestAssetBundle.GetAssetBundle(url, version);

        request.SendWebRequest();
        while (!request.isDone)
        {
            progress(request.downloadProgress);

            yield return null;
        }
        progress(1f);
        if (!request.isHttpError && !request.isNetworkError)
        {
            UnloadCurrentAssetBundle();
            response(DownloadHandlerAssetBundle.GetContent(request), addonId, version);
        }
        else
        {
            LoadingError(1);
            Debug.LogErrorFormat("error request [{0}, {1}]", url, request.error);
            yield break;
        }

        request.Dispose();
    }
 

Re: Загрузка AssetBundles

СообщениеДобавлено: 16 сен 2019, 21:26
seaman
Ссылки https?
Просто новые устройства только по таким ссылкам работают.

Re: Загрузка AssetBundles

СообщениеДобавлено: 17 сен 2019, 07:44
levka4
Нет, http. Спасибо за ответ, попробую с https

Re: Загрузка AssetBundles

СообщениеДобавлено: 17 сен 2019, 19:05
levka4
Да, дело было действительно в https и на версиях андроид 9 и выше с http не работало, а с https все ок. Спасибо!

Re: Загрузка AssetBundles

СообщениеДобавлено: 18 сен 2019, 14:35
Woolf
levka4 писал(а):Да, дело было действительно в https и на версиях андроид 9 и выше с http не работало, а с https все ок. Спасибо!

там еще и сертификат нужен