Получить файл манифеста AssetBundle с сервера - PullRequest
1 голос
/ 07 марта 2019

Я новичок в Unity и начинаю использовать AssetBundle для своего проекта, чтобы загрузить их с сервера. Я использую UnityWebRequestAssetBundle для загрузки ресурсов, потому что WWW устарел. Все отлично работает. Я могу загрузить ресурсы с сервера, поместить их в persistentDataPath и загрузить их на сцену без каких-либо проблем. Но потом я понял, что может быть шанс обновить модель, поэтому мне нужно обновить ее и в приложении. Я знаю, что существует файл манифеста для каждого актива в комплекте ресурсов, поэтому, когда я загружаю актив, я также загружаю файл манифеста. Я делаю все как документация Unity, но всегда получаю эту ошибку:

unable to read header from archive file: /manifest/location

Метод загрузки манифеста выглядит следующим образом:

IEnumerator GetManifest(string animal)
{
    using (UnityWebRequest uwr = UnityWebRequestAssetBundle.GetAssetBundle("http://weppage.com/" + asset + ".manifest"))
    {
        uwr.downloadHandler = new DownloadHandlerFile(path + "/" + asset + ".manifest");
        yield return uwr.SendWebRequest();

        if ( uwr.isNetworkError || uwr.isHttpError )
        {
            Debug.Log(uwr.error);
        }
    }
}

Тогда есть способ проверки после загрузки:

    AssetBundle manifestBundle = AssetBundle.LoadFromFile(Path.Combine(path, asset));
    AssetBundleManifest manifest = manifestBundle.LoadAsset<AssetBundleManifest>("asset.manifest");

Я полностью потерян. Я иду через Google, и я не могу заставить его работать. Я не понимаю, почему это не работает. Я без проблем загружаю ресурс, и в документации Unity говорится, что он должен работать одинаково. Из документов Unity: Loading the manifest itself is done exactly the same as any other Asset from an AssetBundle

...