| | |
| | | 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; |