三国卡牌客户端基础资源仓库
hch
2026-09-25 51497d37d2ea18aa4e439250119bb6f01224f519
Assets/Editor/Tool/TexturePlatformFormatHelper.cs
@@ -142,15 +142,28 @@
        return changed;
    }
    /// <summary>
    /// 会被真正写入 meta 的图集平台(只有 overridden=true 的平台设置才会被持久化)。
    /// Standalone / DefaultTexturePlatform 按需求保持默认,不做覆盖。
    /// </summary>
    public static readonly string[] OVERRIDDEN_ATLAS_PLATFORMS = { "Android", "iPhone", "WebGL" };
    /// <summary>
    /// 统一图集平台的 maxTextureSize。
    /// 注意:绝不能对 overridden=false 的平台写 maxTextureSize —— 这类设置不会被持久化,
    /// 每次导入读回来仍是默认值,会被判成"有改动"从而在 OnPostprocessAllAssets 里反复
    /// SaveAndReimport,最终触发 Unity 的 "infinite import loop" 检测。
    /// </summary>
    public static bool ApplyAtlasMaxTextureSize(SpriteAtlasImporter importer)
    {
        bool changed = false;
        foreach (var platform in new[] { "Standalone", "Android", "iPhone", "WebGL", "DefaultTexturePlatform" })
        foreach (var platform in OVERRIDDEN_ATLAS_PLATFORMS)
        {
            var settings = importer.GetPlatformSettings(platform);
            if (settings.maxTextureSize == ATLAS_MAX_SIZE)
            if (settings.overridden && settings.maxTextureSize == ATLAS_MAX_SIZE)
                continue;
            settings.overridden = true;
            settings.maxTextureSize = ATLAS_MAX_SIZE;
            importer.SetPlatformSettings(settings);
            changed = true;