63 lines
2.4 KiB
C#
63 lines
2.4 KiB
C#
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 内容后重出包");
|
||
}
|
||
} |