Я новичок в AssetBundle и пытаюсь узнать об этом. В настоящее время я могу загрузить актив с сервера, но не могу получить хэш из самого файла актива. Он сохраняет return NullException.
Я пробовал следовать документу здесь: https://docs.unity3d.com/ScriptReference/Caching.html
Но до сих пор понятия не имею, и получите исключение NullException в Hash.
Нашел и это тоже, и не повезло: Как получить AssetBundleManifest из AssetBundle в Unity3D
Затем я попытался выполнить инструкции в этом сообщении: Получить Hash128 из AssetBundle для функции Caching.IsVersionCached
Но все равно получите NullException ()
Вот код, который я перехожу по последней ссылке:
IEnumerator DownloadAssetBundle()
{
UnityWebRequest www = UnityWebRequestAssetBundle.GetAssetBundle("https://www.dropbox.com/s/66psd4aphlgpo2j/testasset?dl=1");
yield return www.SendWebRequest();
if(www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www);
AssetBundleRequest asset = bundle.LoadAssetAsync<AssetBundleManifest>("assetManifestName");
yield return asset;
//Get the AssetBundleManifest
AssetBundleManifest loadedAssetMf = asset.asset as AssetBundleManifest;
//Get Hash128 from the AssetBundleManifest
Hash128 tempHash128 = loadedAssetMf.GetAssetBundleHash("");
//Pass to the IsVersionCached function
Caching.IsVersionCached("https://www.dropbox.com/s/66psd4aphlgpo2j/testasset?dl=1", tempHash128);
//Instantiate(bundle.LoadAsset("RayBan_Sunglasses"));
}
}
Может ли кто-нибудь объяснить, как получить хэш от assetBundle
, что я сделал не так?
Имя файла моего Asset Bundle - "testasset"
. Пожалуйста, укажите, куда поместить "testasset"
, было бы приятно. Большое спасибо за каждый ответ.