三国卡牌客户端基础资源仓库
hch
2026-09-25 51497d37d2ea18aa4e439250119bb6f01224f519
Assets/Editor/Tool/TexturePlatformAssetPostprocessor.cs
@@ -15,6 +15,11 @@
    private static readonly string TARGET_FOLDER = TexturePlatformFormatHelper.TARGET_FOLDER;
    private static readonly bool AUTO_APPLY_ATLAS_SETTINGS = true;
    /// <summary>
    /// 防止回调中 SaveAndReimport 同步触发下一次 OnPostprocessAllAssets 造成嵌套重入。
    /// </summary>
    private static bool s_IsApplying;
    void OnPreprocessTexture()
    {
        if (!assetPath.StartsWith(TARGET_FOLDER))
@@ -38,30 +43,41 @@
    {
        if (!AUTO_APPLY_ATLAS_SETTINGS)
            return;
        // 回调里的 SaveAndReimport 会同步再次触发本回调,必须挡掉,否则会无限自触发
        if (s_IsApplying)
            return;
        foreach (var assetPath in importedAssets)
        s_IsApplying = true;
        try
        {
            if (!assetPath.StartsWith(TARGET_FOLDER))
                continue;
            if (!assetPath.EndsWith(".spriteatlasv2") && !assetPath.EndsWith(".spriteatlas"))
                continue;
            try
            foreach (var assetPath in importedAssets)
            {
                var importer = SpriteAtlasImporter.GetAtPath(assetPath) as SpriteAtlasImporter;
                if (importer == null)
                if (!assetPath.StartsWith(TARGET_FOLDER))
                    continue;
                if (!assetPath.EndsWith(".spriteatlasv2") && !assetPath.EndsWith(".spriteatlas"))
                    continue;
                if (TexturePlatformFormatHelper.ApplyAtlasPlatformSettings(importer))
                try
                {
                    importer.SaveAndReimport();
                    Debug.Log($"[TexImport] 图集: {assetPath}");
                    var importer = SpriteAtlasImporter.GetAtPath(assetPath) as SpriteAtlasImporter;
                    if (importer == null)
                        continue;
                    if (TexturePlatformFormatHelper.ApplyAtlasPlatformSettings(importer))
                    {
                        importer.SaveAndReimport();
                        Debug.Log($"[TexImport] 图集: {assetPath}");
                    }
                }
                catch (System.Exception ex)
                {
                    Debug.LogError($"[TexImport] 图集失败 {assetPath}: {ex.Message}");
                }
            }
            catch (System.Exception ex)
            {
                Debug.LogError($"[TexImport] 图集失败 {assetPath}: {ex.Message}");
            }
        }
        finally
        {
            s_IsApplying = false;
        }
    }
}