En este momento estás viendo Try/Catch de Unity con AssetBundle.LoadFromFile() no funciona

 – Unity

Try/Catch de Unity con AssetBundle.LoadFromFile() no funciona – Unity

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

Deja una respuesta