LoadAssetBundleInternal() статический защищенный Метод

static protected LoadAssetBundleInternal ( string assetBundleName, bool isLoadingAssetBundleManifest ) : bool
assetBundleName string
isLoadingAssetBundleManifest bool
Результат bool
Пример #1
0
        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);
        }
Пример #2
0
            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
            }
Пример #3
0
            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]);
            }