Ejemplo n.º 1
0
        public static T ManualLoadAsset <T>(AssetBundleAddress assetBundleAddress) where T : UnityEngine.Object
        {
            T result = default;

            if (!AssetBundleCheck.IsFile(assetBundleAddress.AssetBundle))
            {
                Logger.LogWarning($"AssetLoader: No such asset bundle: {assetBundleAddress.AssetBundle}");
                return(result);
            }
            var loaders = new Loader <T> .AssetBundleAddressLoader[]
            {
#if AI || HS2
                Loader <T> .AddressAsInfoLoader,
#else
                Loader <T> .DefaultLoader
#endif
            };

            foreach (var forceUnload in new[] { false, true })
            {
                foreach (var loader in loaders)
                {
                    if (TryLoader <T>(() => loader(assetBundleAddress), loader.Method.Name, assetBundleAddress.AssetBundle,
                                      assetBundleAddress.Asset, forceUnload,
                                      out result))
                    {
                        return(result);
                    }
                }
            }

            return(result);
        }
Ejemplo n.º 2
0
            public static T ManualLoadAsset <T>(AssetBundleAddress assetBundleAddress) where T : Object
            {
                return(IllusionMods.AssetLoader.ManualLoadAsset <T>(assetBundleAddress));

#if false
#if AI
                LoadedBundles.Add(assetBundleAddress.AssetBundle);
                return(AssetUtility.LoadAsset <T>((AssetBundleInfo)assetBundleAddress));
#else
                return(ManualLoadAsset <T>(assetBundleAddress.AssetBundle, assetBundleAddress.Asset,
                                           assetBundleAddress.Manifest));
#endif
#endif
            }
Ejemplo n.º 3
0
 public static T ManualLoadAsset <T>(AssetBundleAddress assetBundleAddress) where T : UnityObject
 {
     return(TextDump.Helpers.ManualLoadAsset <T>(assetBundleAddress));
 }
Ejemplo n.º 4
0
 internal static T DefaultLoader(AssetBundleAddress assetBundleAddress)
 {
     return(ManualLoadAsset <T>(assetBundleAddress.AssetBundle, assetBundleAddress.Asset,
                                assetBundleAddress.Manifest));
 }
 internal static T AddressAsInfoLoader(AssetBundleAddress assetBundleAddress)
 {
     return(ManualLoadAsset <T>(assetBundleAddress.AssetBundle, assetBundleAddress.Name,
                                assetBundleAddress.Manifest));
 }
Ejemplo n.º 6
0
 internal static T AddressAsInfoLoader(AssetBundleAddress assetBundleAddress)
 {
     return(ManualLoadAsset <T>((AssetBundleInfo)assetBundleAddress));
 }