From 0462601d173c2cb74fb12a18a4ffcaa130febc34 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 16 九月 2025 22:25:38 +0800
Subject: [PATCH] 0312 下载之后才加载ui
---
Main/ResModule/ResManager.cs | 82 +++++++++++++++++++++++++++++++----------
1 files changed, 62 insertions(+), 20 deletions(-)
diff --git a/Main/ResModule/ResManager.cs b/Main/ResModule/ResManager.cs
index 47653d7..56bbfb3 100644
--- a/Main/ResModule/ResManager.cs
+++ b/Main/ResModule/ResManager.cs
@@ -1,14 +1,10 @@
-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 System.Reflection;
+using Spine.Unity;
@@ -69,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"},
};
@@ -133,6 +131,17 @@
{
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);
}
@@ -142,8 +151,7 @@
T asset = null;
var path = ($"Assets/ResourcesOut/{directory}/{name}" + GetExtension(typeof(T))).Replace("//", "/").Trim().Replace("\\", "/");
- path = System.Text.RegularExpressions.Regex.Replace(path, @"[\p{C}]", "");
- if (AssetSource.uiFromEditor)
+ if (!AssetSource.isUseAssetBundle)
{
#if UNITY_EDITOR
asset = UnityEditor.AssetDatabase.LoadAssetAtPath<T>(path);
@@ -151,6 +159,21 @@
}
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;
}
@@ -163,14 +186,32 @@
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.Replace("Sprite/", ""));
- return atlas.GetSprite(spriteName);
-#else
- return ResManager.Instance.LoadAssetInternal<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
@@ -191,7 +232,8 @@
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
{
@@ -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