From 3f2cd27c5dfb3b450245bf1a37fc1b3414031c7c Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 11 二月 2026 11:03:58 +0800
Subject: [PATCH] 小游戏适配 资源系统改造

---
 Main/Utility/ComponentExtersion.cs |   91 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 91 insertions(+), 0 deletions(-)

diff --git a/Main/Utility/ComponentExtersion.cs b/Main/Utility/ComponentExtersion.cs
index c3b8882..3f25b7c 100644
--- a/Main/Utility/ComponentExtersion.cs
+++ b/Main/Utility/ComponentExtersion.cs
@@ -2,6 +2,7 @@
 using UnityEngine.UI;
 using UnityEngine.Events;
 using System;
+using Cysharp.Threading.Tasks;
 
 
 public static class ComponentExtersion
@@ -333,6 +334,24 @@
         _image.overrideSprite = sprite;
     }
 
+    public static async UniTask SetSpriteAsync(this Image _image, string _id)
+    {
+        if (_image == null)
+        {
+            return;
+        }
+
+        if (string.IsNullOrEmpty(_id))
+        {
+            Debug.LogError("Image SetSpriteAsync id is null or empty " + _id);
+            return;
+        }
+
+        var sprite = await UILoader.LoadSpriteAsync(_id);
+        if (_image != null)
+            _image.overrideSprite = sprite;
+    }
+
 
     public static void SetSprite(this TextImage _textImage, string _id)
     {
@@ -349,6 +368,24 @@
 
         var sprite = UILoader.LoadSprite(_id);
         _textImage.sprite = sprite;
+    }
+
+    public static async UniTask SetSpriteAsync(this TextImage _textImage, string _id)
+    {
+        if (_textImage == null)
+        {
+            return;
+        }
+
+        if (string.IsNullOrEmpty(_id))
+        {
+            Debug.LogError("TextImage SetSpriteAsync id is null or empty " + _id);
+            return;
+        }
+
+        var sprite = await UILoader.LoadSpriteAsync(_id);
+        if (_textImage != null)
+            _textImage.sprite = sprite;
     }
 
     //閫氳繃鍥剧墖鍚嶅姞杞�, 濡傜墿鍝佽〃 鎶�鑳借〃绛夛紝鑺傜渷鍦↖con琛ㄥ仛澶氫綑閰嶇疆
@@ -368,6 +405,24 @@
         var sprite = UILoader.LoadSprite(folderName, iconName);
         if (null == sprite) return;
         _image.overrideSprite = sprite;
+    }
+
+    public static async UniTask SetOrgSpriteAsync(this Image _image, string iconName, string folderName = "icon")
+    {
+        if (_image == null)
+        {
+            return;
+        }
+
+        if (string.IsNullOrEmpty(iconName))
+        {
+            Debug.LogError("SetOrgSpriteAsync iconName is null or empty " + iconName);
+            return;
+        }
+
+        var sprite = await UILoader.LoadSpriteAsync(folderName, iconName);
+        if (_image != null && sprite != null)
+            _image.overrideSprite = sprite;
     }
 
     public static void SetItemSprite(this Image _image, int itemID)
@@ -417,6 +472,30 @@
         _image.overrideSprite = sprite;
     }
 
+    public static async UniTask SetSkillSpriteAsync(this Image _image, int skillID)
+    {
+        if (_image == null)
+        {
+            return;
+        }
+
+        var skillConfig = SkillConfig.Get(skillID);
+        if (skillConfig == null)
+        {
+            return;
+        }
+
+        if (string.IsNullOrEmpty(skillConfig.IconName))
+        {
+            Debug.LogError("SetSkillSpriteAsync IconName is null or empty for skillID " + skillID);
+            return;
+        }
+
+        var sprite = await UILoader.LoadSpriteAsync("SkillIcon", skillConfig.IconName);
+        if (_image != null)
+            _image.overrideSprite = sprite;
+    }
+
     public static void SetActive(this Component compoent, bool active)
     {
         if (compoent != null)
@@ -444,6 +523,18 @@
         _image.texture = texture;
     }
 
+    public static async UniTask SetTexture2DAsync(this RawImage _image, string _id)
+    {
+        if (_image == null)
+        {
+            return;
+        }
+
+        var texture = await UILoader.LoadTexture2DAsync(_id);
+        if (_image != null)
+            _image.texture = texture;
+    }
+
 
     public static void SetTexture2DPNG(this RawImage _image, string _id)
     {

--
Gitblit v1.8.0