Try/Catch de Unity con AssetBundle.LoadFromFile() no funciona
– UnityAssets3Free
hola , me llamo kein y para hoy os traigo
nueva pregunta curiosa
Estoy ejecutando el siguiente método desde el método Unity Start():
private void GetFiles()
List<string> files = new List<string>();
EnumerateFiles(baseDir, ref files);
foreach (string assetBundleName in files)
try
assetBundle = AssetBundle.LoadFromFile(assetBundleName);
prefabs.Add(assetBundleName, assetBundle.GetAllAssetNames().ToList().Where(s => s.ToUpper().EndsWith(".PREFAB")).ToList());
catch
if (assetBundle != null) assetBundle.Unload(true);
Estoy tratando de enumerar a través de un montón de asset paquetes y buscar casas prefabricadas. No tengo ningún problema para obtener la lista de asset paquetes Sin embargo, para determinar los prefabricados internos, necesito cargar el asset paquete y luego use algo como GetAllAssetNames() para determinar el contenido. En mi caso busco asset nombre que termina en Prefab para determinar prefabs. El código funciona bien siempre y cuando ninguno de los asset Los paquetes están dañados.
Sin embargo, si un asset paquete está dañado, la aplicación lanzará una excepción aparentemente indetectable y terminará la ejecución. Puse el asset paquete cargando y llamando a GetAllAssetNames() en una estructura try/catch para intentar detectar dicho error y continuar con el siguiente asset bundle, pero try/catch no parece ser capaz de detectar el error.
¿Alguna idea de cómo puedo detectar este error para evitar que la aplicación se bloquee?
0
nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias
por hoy,espero que te halla servido