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

---
 Main/Utility/MaterialUtility.cs |   37 +++++++++++++++++++++++++++++++++----
 1 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/Main/Utility/MaterialUtility.cs b/Main/Utility/MaterialUtility.cs
index 2249278..d5bf793 100644
--- a/Main/Utility/MaterialUtility.cs
+++ b/Main/Utility/MaterialUtility.cs
@@ -1,13 +1,17 @@
 锘縰sing UnityEngine;
 using System;
+using Cysharp.Threading.Tasks;
+using ProjSG.Resource;
 
 
 public static class MaterialUtility
 {
+    // T044: Materials must be pre-loaded via StartupEssential preload config
+    // (location: "Assets/ResourcesOut/BuiltIn/Materials")
 
     public static Material GetDefaultSpriteGrayMaterial()
     {
-        return ResManager.Instance.LoadAsset<Material>("BuiltIn/Materials", "SpriteGray");
+        return ResourceCacheManager.Instance.GetCached<Material>("Assets/ResourcesOut/BuiltIn/Materials/SpriteGray.mat");
     }
 
     public static Material GetInstantiatedSpriteGrayMaterial()
@@ -18,12 +22,12 @@
 
     public static Material GetSmoothMaskGrayMaterial()
     {
-        return ResManager.Instance.LoadAsset<Material>("BuiltIn/Materials", "SmoothMaskGray");
+        return ResourceCacheManager.Instance.GetCached<Material>("Assets/ResourcesOut/BuiltIn/Materials/SmoothMaskGray.mat");
     }
 
     public static Material GetInstantiatedSpriteTwinkleMaterial()
     {
-        var material = ResManager.Instance.LoadAsset<Material>("BuiltIn/Materials", "Flash");
+        var material = ResourceCacheManager.Instance.GetCached<Material>("Assets/ResourcesOut/BuiltIn/Materials/Flash.mat");
         return new Material(material);
     }
 
@@ -34,7 +38,32 @@
 
     public static Material GetGUIRenderTextureMaterial()
     {
-        return ResManager.Instance.LoadAsset<Material>("BuiltIn/Materials", "UI_RenderTexture");
+        return ResourceCacheManager.Instance.GetCached<Material>("Assets/ResourcesOut/BuiltIn/Materials/UI_RenderTexture.mat");
+    }
+
+    // ====================================================================
+    // US2: Async variants 鈥� temporary API. Replaced by preload+cache in T044.
+    // ====================================================================
+
+    public static UniTask<Material> GetDefaultSpriteGrayMaterialAsync()
+    {
+        return ResManager.Instance.LoadAssetAsync<Material>("BuiltIn/Materials", "SpriteGray");
+    }
+
+    public static UniTask<Material> GetSmoothMaskGrayMaterialAsync()
+    {
+        return ResManager.Instance.LoadAssetAsync<Material>("BuiltIn/Materials", "SmoothMaskGray");
+    }
+
+    public static async UniTask<Material> GetInstantiatedSpriteTwinkleMaterialAsync()
+    {
+        var material = await ResManager.Instance.LoadAssetAsync<Material>("BuiltIn/Materials", "Flash");
+        return new Material(material);
+    }
+
+    public static UniTask<Material> GetGUIRenderTextureMaterialAsync()
+    {
+        return ResManager.Instance.LoadAssetAsync<Material>("BuiltIn/Materials", "UI_RenderTexture");
     }
 
     public static void SetRenderSortingOrder(this GameObject root, int sortingOrder, bool includeChildren)

--
Gitblit v1.8.0