Не удалось распаковать данные для AssetBundle 'Memory'. (WebGL) - PullRequest
0 голосов
/ 03 октября 2019

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

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

NullReferenceException: для ссылки на объект не задан экземпляр объекта DownloadScript + d__2.MoveNext () (at 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);
}

'' '

1 Ответ

1 голос
/ 03 октября 2019

Вы уверены, что также строите свои пакеты активов с учетом правильной платформы? Пакеты активов, созданные для рабочего стола, не обязательно будут работать для webgl.

...