yyl
2026-02-11 3f2cd27c5dfb3b450245bf1a37fc1b3414031c7c
Main/Utility/MaterialUtility.cs
@@ -1,13 +1,17 @@
using 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)