Files
5.24BuYu/Assets/Editor/TurretAtlasBleedingFix.cs
T
2026-10-10 04:09:28 +08:00

63 lines
2.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using UnityEditor;
using UnityEditor.U2D;
using UnityEngine;
/// <summary>
/// 一键修复炮台/翅膀/战神三个图集的边缘渗色(设置存在 .meta 的 SpriteAtlasImporter 里):
/// 1) Padding 4 → 8(隔开相邻 sprite,大于 ASTC 压缩块尺寸,根治相邻像素渗色)
/// 2) 平台压缩 ASTC 6x6 → 4x4(质量档提高,减少压缩糊边/杂边)
/// 3) 尺寸上限 1024 → 2048(避免整体缩小带来的模糊)
/// 改动后必须:重建 Addressables 内容 → 重出包。
/// </summary>
public static class TurretAtlasBleedingFix
{
private static readonly string[] Atlases =
{
"Assets/MyGame/aa/UI/Atlases/PaoTaiSprite.spriteatlasv2",
"Assets/MyGame/aa/UI/Atlases/chibangSprite.spriteatlasv2",
"Assets/MyGame/aa/UI/Atlases/ZhanShenSprite.spriteatlasv2",
};
[MenuItem("Tools/图集工具/修复炮台三图集边缘渗色")]
public static void Fix()
{
foreach (var path in Atlases)
{
var importer = AssetImporter.GetAtPath(path) as SpriteAtlasImporter;
if (importer == null)
{
Debug.LogWarning($"[图集修复] 跳过(不是 SpriteAtlasImporter): {path}");
continue;
}
// 1) Padding 4 → 8
var packing = importer.packingSettings;
packing.padding = 8;
importer.packingSettings = packing;
// 2) 平台压缩与尺寸:ASTC 4x4 + 上限 2048
var android = importer.GetPlatformSettings("Android");
if (android != null)
{
android.overridden = true;
android.format = TextureImporterFormat.ASTC_4x4;
android.maxTextureSize = 2048;
importer.SetPlatformSettings(android);
}
var iphone = importer.GetPlatformSettings("iPhone");
if (iphone != null)
{
iphone.overridden = true;
iphone.format = TextureImporterFormat.ASTC_4x4;
iphone.maxTextureSize = 2048;
importer.SetPlatformSettings(iphone);
}
importer.SaveAndReimport();
Debug.Log($"[图集修复] {System.IO.Path.GetFileName(path)} → padding=8, ASTC 4x4, 上限2048");
}
AssetDatabase.Refresh();
Debug.Log("[图集修复] 完成 —— 请重建 Addressables 内容后重出包");
}
}