Не удалось распаковать данные для AssetBundle «Память». (Webgl)

Делаю игру для webgl. Но когда я загружаю наборы ресурсов по ссылке, а затем загружаю их в игру, появляется ошибка.

ошибка: не удалось распаковать данные для AssetBundle «Память». UnityEngine.WWW: get_assetBundle ()

NullReferenceException: ссылка на объект не установлена ​​на экземпляр объекта DownloadScript + d__2.MoveNext () (в Assets / DownloadScript.cs: 27)

Когда я загружаю актив из своей системы (локально), он загружается отлично. Но когда я загружаю его по живой ссылке, она не загружается.

Это мой код для загрузки с сервера

'''

public class DownloadScript : MonoBehaviour
{
public string url;

// Start is called before the first frame update
[System.Obsolete]
void Start()
{
    StartCoroutine(DownloadModel());
}

[System.Obsolete]
IEnumerator DownloadModel()
{
    WWW wwws = new WWW(url);
    yield return wwws;
    //UnityWebRequest www = UnityWebRequest.GetAssetBundle();
    //yield return www.SendWebRequest();


    AssetBundle assetBundle = wwws.assetBundle;
    Instantiate(assetBundle.LoadAsset("cube"));

}

'''

Код для загрузки из локальной системы:

'''

AssetBundle myLoadedAssetbundle;
public string path;
public string bundleAsset;
void Start()
{
    LoadAssetBundle(path);
    //InstantiateObjectFromBundle(bundleAsset);
    StartCoroutine(DownloadAndCache(path));
}

void LoadAssetBundle(string bundleUrl)
{
    myLoadedAssetbundle = AssetBundle.LoadFromFile(bundleUrl);
    //myLoadedAssetbundle = AssetBundle.

    Debug.Log(myLoadedAssetbundle == null ? "Failed to load AssetBundle" : "AssetBundle Succesfully Loaded");
}

void InstantiateObjectFromBundle(string assetName)
{
    var prefab = myLoadedAssetbundle.LoadAsset(assetName);
    Instantiate(prefab);
}

'''


person Aqib Ahmed    schedule 03.10.2019    source источник
comment
Instantiate(assetBundle.LoadAsset("cube")); но вы ничего не делаете с созданным объектом   -  person Cid    schedule 03.10.2019
comment
Да, но объект должен быть создан   -  person Aqib Ahmed    schedule 04.10.2019
comment
Удалось ли это исправить?   -  person FrakyDale    schedule 28.09.2020


Ответы (1)


Вы уверены, что строите свои наборы активов с учетом правильной платформы? Наборы ресурсов, созданные для настольных компьютеров, не обязательно будут работать с WebGL.

person TJHeuvel    schedule 03.10.2019
comment
отличается ли способ создания наборов ресурсов для webgl? - person Aqib Ahmed; 04.10.2019
comment
Сейчас для игры выбрана платформа webgl. При этом, когда я загружал его локально в единстве, он отлично работает. Но когда в единстве я пытаюсь загрузить его с сервера, он не работает - person Aqib Ahmed; 04.10.2019
comment
›» - это другой способ создания наборов ресурсов для webgl »Да, очень сильно. Создавая наборы активов, вы предоставляете платформу, убедитесь, что вы используете эту платформу. - person TJHeuvel; 04.10.2019
comment
Не могли бы вы рассказать об этом немного подробнее? Я не понял этого - person Aqib Ahmed; 04.10.2019
comment
Пакеты активов зависят от платформы. При его создании необходимо указать, для какой платформы он предназначен. У разных платформ разные потребности и ограничения. Например, память в WebGL значительно более ограничена, чем в настольном приложении. - person user430788; 30.06.2021