From c26c07703564106864e6c1af1b437f4060c6cbac Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期二, 16 九月 2025 22:57:28 +0800 Subject: [PATCH] 0312 测试热更 --- Main/ResModule/ResManager.cs | 92 +++++++++++++++++++++++++++++++++------------ 1 files changed, 67 insertions(+), 25 deletions(-) diff --git a/Main/ResModule/ResManager.cs b/Main/ResModule/ResManager.cs index 0f40ef0..56bbfb3 100644 --- a/Main/ResModule/ResManager.cs +++ b/Main/ResModule/ResManager.cs @@ -1,13 +1,11 @@ -using UnityEngine; -using System.Collections; +锘縰sing UnityEngine; using System.Collections.Generic; -using Cysharp.Threading.Tasks; using System; using UnityEngine.U2D; -using LitJson; using System.IO; -using UnityEngine.Networking; using UnityEngine.Video; +using Spine.Unity; + #if UNITY_EDITOR @@ -67,14 +65,16 @@ { {typeof(GameObject), "prefab"}, {typeof(Sprite), "png"}, - {typeof(Texture2D), "png"}, - {typeof(Shader), "shader"}, + {typeof(Texture2D), "jpg"}, + {typeof(Texture), "jpg"}, + { typeof(Shader), "shader"}, {typeof(TextAsset), "txt"}, {typeof(AudioClip), "wav"}, {typeof(Font), "ttf"}, {typeof(Material), "mat"}, {typeof(VideoClip), "mp4"}, {typeof(SpriteAtlas), "spriteatlasv2"}, + {typeof(SkeletonDataAsset), "asset"}, }; @@ -126,11 +126,21 @@ public T LoadAsset<T> (string directory, string name) where T : UnityEngine.Object { T asset = null; - // 鐗规畩澶勭悊 鍥犱负鏈変竴灞傚浘闆嗙殑鍏崇郴 directory瑕佷紶鍏ョ殑搴旇鏄痑tlas鐨勫悕瀛� if (typeof(T) == typeof(Sprite)) { return LoadSprite(directory, name) as T; + } + else if (typeof(T) == typeof(SkeletonDataAsset)) + { + //鏂囦欢鐩綍璋冩暣锛宯ame涓寘鍚簡璺緞 + if (name.Contains("/")) + { + directory += name.Substring(0, name.LastIndexOf("/")); + name = name.Substring(name.LastIndexOf("/") + 1); + } + + directory = directory.Replace("\\", "/"); } return LoadAssetInternal<T>(directory, name); @@ -140,9 +150,8 @@ { T asset = null; - var path = string.Concat($"Assets/ResourcesOut/{directory}/{name}", GetExtension(typeof(T))).Replace("//", "/"); - - if (AssetSource.uiFromEditor) + var path = ($"Assets/ResourcesOut/{directory}/{name}" + GetExtension(typeof(T))).Replace("//", "/").Trim().Replace("\\", "/"); + if (!AssetSource.isUseAssetBundle) { #if UNITY_EDITOR asset = UnityEditor.AssetDatabase.LoadAssetAtPath<T>(path); @@ -150,27 +159,59 @@ } else { + if (directory == "UI" || directory == "UIComp" || directory.StartsWith("Sprite") + || directory == "Battle/Prefabs" || directory == "Materials") + { + directory = "UI/" + directory; + } + else if (name == "Hero_001") + { + directory = "UI/Hero/SpineRes"; + } + + else if (directory.Contains("Texture")) + { + directory = "maps/"+name; + } + var assetInfo = new AssetInfo(directory.ToLower(), name.ToLower()); asset = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(T)) as T; } if (asset == null) { - Debug.LogErrorFormat("LoadAsset() => 鍔犺浇涓嶅埌璧勬簮: {0}.", name); + Debug.LogErrorFormat("LoadAsset() => 鍔犺浇涓嶅埌璧勬簮: {0}", path); } return asset; } + public string[] LoadConfig(string name) + { + string path = string.Empty; +#if UNITY_EDITOR + if (!AssetSource.isUseAssetBundle) + { + path = ResourcesPath.CONFIG_FODLER + "/" + name + ".txt"; + } + else +#endif + { + path = AssetVersionUtility.GetAssetFilePath($"config/{name}.txt"); + } + + return File.ReadAllLines(path); + } + private Sprite LoadSprite(string atlasName, string spriteName) { -#if !UNITY_EDITOR - SpriteAtlas atlas = LoadAsset<SpriteAtlas>("Sprite", atlasName); - return atlas.GetSprite(spriteName); -#else - // 缂栬緫鍣ㄤ笅鍙互鐩存帴鍔犺浇娌″暐闂 - return LoadAssetInternal<Sprite>("Sprite/" + atlasName, spriteName); -#endif + if (!AssetSource.isUseAssetBundle) + { + SpriteAtlas atlas = LoadAsset<SpriteAtlas>("Sprite", atlasName.Replace("Sprite/", "")); + return atlas.GetSprite(spriteName); + } + else + return LoadAssetInternal<Sprite>(atlasName, spriteName); } public void LoadAssetAsync<T>(string directory, string name, Action<bool, UnityEngine.Object> callBack) where T : UnityEngine.Object @@ -188,10 +229,11 @@ private void LoadSpriteAsync<T>(string atlasName, string spriteName, Action<bool, UnityEngine.Object> callBack) where T : UnityEngine.Object { #if !UNITY_EDITOR - LoadAssetAsync<SpriteAtlas>("Sprite", atlasName, (isLoaded, atlas) => { + LoadAssetAsync<SpriteAtlas>(atlasName, spriteName, (isLoaded, atlas) => { if (isLoaded) { - callBack?.Invoke(isLoaded, atlas.GetSprite(spriteName)); + SpriteAtlas _atlas = atlas as SpriteAtlas; + callBack?.Invoke(isLoaded, _atlas.GetSprite(spriteName)); } else { @@ -200,7 +242,7 @@ }); #else // 缂栬緫鍣ㄤ笅鍙互鐩存帴鍔犺浇娌″暐闂 - LoadAssetAsyncInternal<T>("Sprite/" + atlasName, spriteName, callBack); + LoadAssetAsyncInternal<T>(atlasName, spriteName, callBack); #endif } @@ -208,7 +250,7 @@ { var path = string.Concat($"Assets/ResourcesOut/{directory}/{name}", GetExtension(typeof(T))).Replace("//", "/"); - if (AssetSource.uiFromEditor) + if (!AssetSource.isUseAssetBundle) { #if UNITY_EDITOR var asset = UnityEditor.AssetDatabase.LoadAssetAtPath<T>(path); @@ -224,7 +266,7 @@ public void UnloadAsset(string assetBundleName, string assetName) { - if (AssetSource.uiFromEditor) + if (!AssetSource.isUseAssetBundle) return; AssetBundleUtility.Instance.UnloadAsset(assetBundleName, assetName); @@ -232,7 +274,7 @@ public void UnloadAssetBundle(string assetBundleName, bool unloadAllLoadedObjects, bool includeDependenice) { - if (AssetSource.uiFromEditor) + if (!AssetSource.isUseAssetBundle) return; AssetBundleUtility.Instance.UnloadAssetBundle(assetBundleName, unloadAllLoadedObjects, includeDependenice); } -- Gitblit v1.8.0