From ece5fc6192739ec18692cc9ef0000b09ba1bf154 Mon Sep 17 00:00:00 2001 From: yyl <yyl> Date: 星期三, 04 六月 2025 15:08:57 +0800 Subject: [PATCH] 18 子 2D卡牌客户端搭建 / 2D卡牌客户端搭建 备注: 1.资源加载统一入口 2.创建组件层级改为UI --- Main/ResModule/UILoader.cs | 402 ++++++--------------------------------------------------- 1 files changed, 45 insertions(+), 357 deletions(-) diff --git a/Main/ResModule/UILoader.cs b/Main/ResModule/UILoader.cs index b965037..68d1677 100644 --- a/Main/ResModule/UILoader.cs +++ b/Main/ResModule/UILoader.cs @@ -7,368 +7,56 @@ 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>("UI", 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>("Prefab", _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("Prefab", _assetName); + } -// window = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path); -// #endif -// } -// else -// { -// // var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(name); -// var bundleName = "ui/window"; + 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>("Sprite/" + _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("Sprite/", iconConfig.folder); + ResManager.Instance.UnloadAsset(bundleName, iconConfig.sprite); + } + } -// return window; -// } + public static Font LoadFont(string _fontName) + { + return ResManager.Instance.LoadAsset<Font>("Font", _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); - -// 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 void UnLoadFont(string _fontName) + { + ResManager.Instance.UnloadAsset("Font", _fontName); + } +} -- Gitblit v1.8.0