yyl
2025-09-18 871594462e82d6bc1341918d39e11ab036d59563
Main/ResModule/UILoader.cs
@@ -7,368 +7,72 @@
using UnityEngine.U2D;
// public class UILoader
// {
//     readonly static string PREFAB_EXTERSION = ".prefab";
//     readonly static string SPRITE_EXTERSION = ".png";
//     readonly static string Spriteatlas_EXTERSION = ".spriteatlasv2";
public class UILoader
{
    public static GameObject LoadWindow(string name)
    {
        return ResManager.Instance.LoadAsset<GameObject>(ResourcesPath.UI_WINDOW_SUFFIX, name);
    }
//     public static GameObject LoadWindow(string name)
//     {
//         GameObject window = null;
//         if (AssetSource.uiFromEditor)
//         {
// #if UNITY_EDITOR
//             var isPriority = false;//PriorityWindowConfig.Get().priorityWindows.Contains(name);
    public static GameObject LoadPrefab(string _name)
    {
        return ResManager.Instance.LoadAsset<GameObject>(ResourcesPath.UI_PREFAB_SUFFIX, _name);
    }
//             var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
//                                                                 isPriority ? ResourcesPath.UI_PRIORITYWINDOW_SUFFIX : ResourcesPath.UI_WINDOW_SUFFIX, "/",
//                                                                 name,
//                                                                 PREFAB_EXTERSION);
    public static void UnLoadPrefab(string _assetName)
    {
        ResManager.Instance.UnloadAsset(ResourcesPath.UI_PREFAB_SUFFIX, _assetName);
    }
//             window = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
// #endif
//         }
//         else
//         {
//             // var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(name);
//             var bundleName = "ui/window";
    //通过ICON表加载
    public static Sprite LoadSprite(string _iconKey)
    {
        var iconConfig = IconConfig.Get(_iconKey);
        if (iconConfig == null)
        {
            return null;
        }
//             var assetInfo = new AssetInfo(bundleName, name);
        return LoadSprite(iconConfig.folder, iconConfig.sprite);
    }
//             window = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as GameObject;
//         }
    public static Sprite LoadSprite(string _folder, string _file)
    {
        return ResManager.Instance.LoadAsset<Sprite>(StringUtility.Contact(ResourcesPath.UI_SPRITE_SUFFIX, "/", _folder), _file);
    }
//         if (window == null)
//         {
//             Debug.LogErrorFormat("UILoader.LoadWindow() => 加载不到资源: {0}.", name);
//         }
    public static void UnLoadSprite(string _iconKey)
    {
        var iconConfig = IconConfig.Get(_iconKey);
        if (iconConfig != null)
        {
            var bundleName = StringUtility.Contact(ResourcesPath.UI_SPRITE_SUFFIX, "/", iconConfig.folder);
            ResManager.Instance.UnloadAsset(bundleName, iconConfig.sprite);
        }
    }
//         return window;
//     }
    public static Font LoadFont(string _fontName)
    {
        return ResManager.Instance.LoadAsset<Font>(ResourcesPath.UI_FONT_SUFFIX, _fontName);
    }
//     public static void LoadWindowAsync(string _name, Action<bool, UnityEngine.Object> _callBack)
//     {
//         GameObject window = null;
//         if (AssetSource.uiFromEditor)
//         {
// #if UNITY_EDITOR
//             var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_name);
//             var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
//                                                                isPriority ? ResourcesPath.UI_PRIORITYWINDOW_SUFFIX : ResourcesPath.UI_WINDOW_SUFFIX, "/",
//                                                                _name,
//                                                                PREFAB_EXTERSION);
    public static void UnLoadFont(string _fontName)
    {
        ResManager.Instance.UnloadAsset(ResourcesPath.UI_FONT_SUFFIX, _fontName);
    }
//             window = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
//             if (_callBack != null)
//             {
//                 _callBack(window != null, window);
//             }
// #endif
//         }
//         else
//         {
//             var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_name);
//             var bundleName = isPriority ? StringUtility.Contact("ui/prioritywindow/", _name) : "ui/window";
//             var assetInfo = new AssetInfo(bundleName, _name);
//             AssetBundleUtility.Instance.Co_LoadAsset(assetInfo, _callBack);
//         }
//     }
//     public static void UnLoadWindowAsset(string _assetName)
//     {
//         if (!AssetSource.uiFromEditor)
//         {
//             var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_assetName);
//             var bundleName = isPriority ? StringUtility.Contact("ui/prioritywindow/", _assetName) : "ui/window";
//             AssetBundleUtility.Instance.UnloadAsset(bundleName, _assetName);
//         }
//     }
//     public static void UnLoadPriorityWindow(string windowName)
//     {
//         if (!AssetSource.uiFromEditor)
//         {
//             var assetBundleName = StringUtility.Contact("ui/prioritywindow/", windowName.ToLower());
//             AssetBundleUtility.Instance.UnloadAssetBundle(assetBundleName, true, false);
//             switch (windowName)
//             {
//                 case "LoginWin":
//                     AssetBundleUtility.Instance.UnloadAssetBundle("ui/sprite/login", true, false);
//                     break;
//                 case "SelectRoleWin":
//                 case "CreateRoleWin":
//                     AssetBundleUtility.Instance.UnloadAssetBundle("ui/sprite/createrole", true, false);
//                     break;
//             }
//         }
//     }
//     public static GameObject LoadPrefab(string _name)
//     {
//         GameObject prefab = null;
//         if (AssetSource.uiFromEditor)
//         {
// #if UNITY_EDITOR
//             var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
//                                                                    ResourcesPath.UI_PREFAB_SUFFIX, "/",
//                                                                    _name,
//                                                                    PREFAB_EXTERSION);
//             prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
// #endif
//         }
//         else
//         {
//             var bundleName = ResourcesPath.UI_PREFAB_SUFFIX.ToLower();
//             var assetInfo = new AssetInfo(bundleName, _name);
//             prefab = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as GameObject;
//         }
//         if (prefab == null)
//         {
//             Debug.LogErrorFormat("UILoader.LoadPrefab() => 加载不到资源: {0}.", _name);
//         }
//         return prefab;
//     }
//     public static void UnLoadPrefab(string _assetName)
//     {
//         if (!AssetSource.uiFromEditor)
//         {
//             AssetBundleUtility.Instance.UnloadAsset("ui/prefab", _assetName);
//         }
//     }
//     public static Sprite LoadSprite(string _iconKey)
//     {
//         var iconConfig = IconConfig.Get(_iconKey);
//         if (iconConfig == null)
//         {
//             return null;
//         }
//         return LoadSprite(iconConfig.folder, iconConfig.sprite);
//     }
//     public static Sprite LoadSprite(string _folder, string _file)
//     {
//         var folder = _folder;
//         var file = _file;
//         Sprite sprite = null;
//         if (AssetSource.uiFromEditor)
//         {
// #if UNITY_EDITOR
//             var relativePath = folder;
//             var rootPath = ResourcesPath.UI_SPRITE_SUFFIX;
//             var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
//                                                                  rootPath, "/",
//                                                                  relativePath,
//                                                                  Spriteatlas_EXTERSION);
//             var spriteAtlas = UnityEditor.AssetDatabase.LoadAssetAtPath<SpriteAtlas>(path);
//             sprite = spriteAtlas.GetSprite(file);
// #endif
//         }
//         else
//         {
//             var bundleName = StringUtility.Contact("ui/sprite/", folder.ToLower());
//             //var assetInfo = new AssetInfo(bundleName, folder);
//             //var spriteAtlas = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(SpriteAtlas)) as SpriteAtlas;
//             //sprite = spriteAtlas?.GetSprite(_file);
//             var assetInfo = new AssetInfo(bundleName, file);
//             sprite = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(Sprite)) as Sprite;
//         }
//         if (sprite == null)
//         {
//             Debug.LogErrorFormat("UILoader.LoadSprite() => 加载不到资源: {0}.", file);
//         }
//         return sprite;
//     }
//     public static void UnLoadSprite(string _iconKey)
//     {
//         if (!AssetSource.uiFromEditor)
//         {
//             var iconConfig = IconConfig.Get(_iconKey);
//             if (iconConfig != null)
//             {
//                 var bundleName = StringUtility.Contact("ui/sprite/", iconConfig.folder.ToLower());
//                 AssetBundleUtility.Instance.UnloadAsset(bundleName, iconConfig.sprite);
//             }
//         }
//     }
//     public static Font LoadFont(string _fontName)
//     {
//         Font font = null;
//         if (AssetSource.uiFromEditor)
//         {
// #if UNITY_EDITOR
//             var rootPath = ResourcesPath.UI_FONT_SUFFIX;
//             var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, rootPath, "/", _fontName, ".ttf");
//             font = UnityEditor.AssetDatabase.LoadAssetAtPath<Font>(path);
// #endif
//         }
//         else
//         {
//             var assetInfo = new AssetInfo("ui/font", _fontName);
//             font = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(Font)) as Font;
//         }
//         if (font == null)
//         {
//             Debug.LogErrorFormat("UILoader.LoadFont() => 加载不到资源: {0}.", _fontName);
//         }
//         return font;
//     }
//     public static void UnLoadFont(string _fontName)
//     {
//         if (!AssetSource.uiFromEditor)
//         {
//             AssetBundleUtility.Instance.UnloadAsset("ui/font", _fontName);
//         }
//     }
//     public static GameObject LoadTreasure(string folder, string name)
//     {
//         GameObject prefab = null;
//         if (AssetSource.uiFromEditor)
//         {
// #if UNITY_EDITOR
//             var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
//                                                                    "UI/Treasure/", folder, "/",
//                                                                    name,
//                                                                    PREFAB_EXTERSION);
//             prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
// #endif
//         }
//         else
//         {
//             var bundleName = StringUtility.Contact("ui/treasure/", folder).ToLower();
//             var assetInfo = new AssetInfo(bundleName, name);
//             prefab = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as GameObject;
//         }
//         if (prefab == null)
//         {
//             Debug.LogErrorFormat("UILoader.LoadPrefab() => 加载不到资源: {0}.", name);
//         }
//         return prefab;
//     }
//     public static void UnLoadTreasure(string folder, string _assetName)
//     {
//         if (!AssetSource.uiFromEditor)
//         {
//             AssetBundleUtility.Instance.UnloadAsset(StringUtility.Contact("ui/treasure/", folder).ToLower(), _assetName);
//         }
//     }
//     public static GameObject LoadFaqi(string pathName, string name)
//     {
//         GameObject prefab = null;
//         if (AssetSource.uiFromEditor)
//         {
// #if UNITY_EDITOR
//             var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
//                                                                    //"UI/Treasure/", folder, "/",
//                                                                    pathName,
//                                                                    name,
//                                                                    PREFAB_EXTERSION);
//             prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
// #endif
//         }
//         else
//         {
//             var bundleName = pathName; //StringUtility.Contact("ui/treasure/", folder).ToLower();
//             var assetInfo = new AssetInfo(bundleName, name);
//             prefab = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as GameObject;
//         }
//         if (prefab == null)
//         {
//             Debug.LogErrorFormat("UILoader.LoadFaqi() => 加载不到资源: {0}.", name);
//         }
//         return prefab;
//     }
//     public static GameObject LoadGodWeapon(string _name)
//     {
//         GameObject prefab = null;
//         if (AssetSource.uiFromEditor)
//         {
// #if UNITY_EDITOR
//             var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
//                                                                    "UI/GodWeapon/",
//                                                                    _name,
//                                                                    PREFAB_EXTERSION);
//             prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
// #endif
//         }
//         else
//         {
//             var bundleName = "ui/godweapon";
//             var assetInfo = new AssetInfo(bundleName, _name);
//             prefab = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as GameObject;
//         }
//         if (prefab == null)
//         {
//             Debug.LogErrorFormat("UILoader.LoadGodWeapon() => 加载不到资源: {0}.", _name);
//         }
//         return prefab;
//     }
//     public static GameObject LoadBossShow(string _name)
//     {
//         GameObject prefab = null;
//         if (AssetSource.uiFromEditor)
//         {
// #if UNITY_EDITOR
//             var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
//                                                                    "UI/BossShow/",
//                                                                    _name,
//                                                                    PREFAB_EXTERSION);
//             prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
// #endif
//         }
//         else
//         {
//             var bundleName = "ui/bossshow";
//             var assetInfo = new AssetInfo(bundleName, _name);
//             prefab = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as GameObject;
//         }
//         if (prefab == null)
//         {
//             Debug.LogErrorFormat("UILoader.LoadBossShow() => 加载不到资源: {0}.", _name);
//         }
//         return prefab;
//     }
// }
    public static Texture2D LoadTexture2D(string _iconKey)
    {
        var iconConfig = IconConfig.Get(_iconKey);
        if (iconConfig == null)
        {
            return null;
        }
        return ResManager.Instance.LoadAsset<Texture2D>(StringUtility.Contact(ResourcesPath.UI_TEXTURE_SUFFIX, "/" + iconConfig.folder), iconConfig.sprite);
    }
    public static Texture2D LoadTexture2DPNG(string name)
    {
        return ResManager.Instance.LoadAsset<Texture2D>(StringUtility.Contact(ResourcesPath.UI_TEXTURE_SUFFIX, "/FullScreenBg"), name + ".png", false);
    }
}