Я новичок в 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