static protected LoadAssetBundleInternal ( string assetBundleName, bool isLoadingAssetBundleManifest ) : bool | ||
assetBundleName | string | |
isLoadingAssetBundleManifest | bool | |
Результат | bool |
public static T ManualLoadAsset <T>(string bundle, string asset, string manifest) where T : Object { AssetBundleManager.LoadAssetBundleInternal(bundle, false, manifest); var assetBundle = AssetBundleManager.GetLoadedAssetBundle(bundle, out string error, manifest); T output = assetBundle.m_AssetBundle.LoadAsset <T>(asset); return(output); }
public static T ManualLoadAsset <T>(string bundle, string asset, string manifest) where T : Object { return(IllusionMods.AssetLoader.ManualLoadAsset <T>(bundle, asset, manifest)); #if false LoadedBundles.Add(bundle); #if AI return(AssetUtility.LoadAsset <T>(bundle, asset, manifest)); #else #if HS var _ = asset; _ = manifest; return(null); #else manifest = manifest.IsNullOrEmpty() ? null : manifest; Logger.DebugLogDebug($"ManualLoadAsset: {bundle}, {asset}, {manifest}"); try { var result = CommonLib.LoadAsset <T>(bundle, asset, false, manifest); AssetBundleManager.UnloadAssetBundle(bundle, true, manifest); return(result); } catch { #if HS2 throw; #else AssetBundleManager.LoadAssetBundleInternal(bundle, false, manifest); var assetBundle = AssetBundleManager.GetLoadedAssetBundle(bundle, out var error, manifest); if (!string.IsNullOrEmpty(error)) { Logger?.LogError($"ManualLoadAsset: {error}"); } var result = assetBundle.m_AssetBundle.LoadAsset <T>(asset); return(result); #endif } #endif #endif #endif }
public static string[] GetAssetNamesFromBundle(string assetBundleName) { string[] ret; try { ret = AssetBundleCheck.GetAllAssetName(assetBundleName); if (ret?.Length > 0) { return(ret); } } catch { } try { ret = AssetBundleCheck.GetAllAssetName(assetBundleName, isAllCheck: true); if (ret?.Length > 0) { return(ret); } } catch { } #if !HS2 AssetBundle assetBundle = null; try { if (AssetBundleManager.AllLoadedAssetBundleNames.Contains(assetBundleName)) { using (var enumerator = AssetBundleManager.ManifestBundlePack.GetEnumerator()) { while (enumerator.MoveNext()) { var current = enumerator.Current; if (current.Value.LoadedAssetBundles.TryGetValue(assetBundleName, out var loadedAssetBundle) ) { ret = loadedAssetBundle.m_AssetBundle.GetAllAssetNames().Select(Path.GetFileName) .ToArray(); if (ret?.Length > 0) { return(ret); } } } } } } catch { } AssetBundleManager.LoadAssetBundleInternal(assetBundleName, false); var loadedAssetBundle1 = AssetBundleManager.GetLoadedAssetBundle(assetBundleName, out var err); if (loadedAssetBundle1 is null) { Logger.LogError(err); assetBundle = AssetBundle.LoadFromFile(string.Concat(AssetBundleManager.BaseDownloadingURL, assetBundleName)); } else { assetBundle = loadedAssetBundle1.m_AssetBundle; } try { if (assetBundle != null) { ret = assetBundle.GetAllAssetNames().Select(Path.GetFileName).ToArray(); if (ret?.Length > 0) { return(ret); } } } finally { if (loadedAssetBundle1 == null && assetBundle != null) { AssetBundleManager.UnloadAssetBundle(assetBundle.name, false); } } #endif return(new string[0]); }