This commit is contained in:
陈思海 2025-03-14 19:58:50 +08:00
parent b6d8704c75
commit 4e748252a4

View File

@ -173,8 +173,13 @@ public static class EditorSpriteSaveInfo
AssetDatabase.Refresh(); AssetDatabase.Refresh();
EditorApplication.delayCall += () => EditorApplication.delayCall += () =>
{ {
#if UNITY_2022_1_OR_NEWER
SpriteAtlasImporter sai = (SpriteAtlasImporter)AssetImporter.GetAtPath(outputPath); SpriteAtlasImporter sai = (SpriteAtlasImporter)AssetImporter.GetAtPath(outputPath);
ConfigureAtlasV2Settings(sai); ConfigureAtlasV2Settings(sai);
#else
ConfigureAtlasV2Settings(spriteAtlasAsset);
SpriteAtlasAsset.Save(spriteAtlasAsset, outputPath);
#endif
AssetDatabase.WriteImportSettingsIfDirty(outputPath); AssetDatabase.WriteImportSettingsIfDirty(outputPath);
AssetDatabase.Refresh(); AssetDatabase.Refresh();
}; };
@ -201,6 +206,7 @@ public static class EditorSpriteSaveInfo
.ToList(); .ToList();
} }
#if UNITY_2022_1_OR_NEWER
private static void ConfigureAtlasV2Settings(SpriteAtlasImporter atlasImporter) private static void ConfigureAtlasV2Settings(SpriteAtlasImporter atlasImporter)
{ {
void SetPlatform(string platform, TextureImporterFormat format) void SetPlatform(string platform, TextureImporterFormat format)
@ -228,6 +234,35 @@ public static class EditorSpriteSaveInfo
}; };
atlasImporter.packingSettings = packingSettings; atlasImporter.packingSettings = packingSettings;
} }
#else
private static void ConfigureAtlasV2Settings(SpriteAtlasAsset spriteAtlasAsset)
{
void SetPlatform(string platform, TextureImporterFormat format)
{
var settings = spriteAtlasAsset.GetPlatformSettings(platform);
if (settings == null) return;
;
settings.overridden = true;
settings.format = format;
settings.compressionQuality = Config.compressionQuality;
spriteAtlasAsset.SetPlatformSettings(settings);
}
SetPlatform("Android", Config.androidFormat);
SetPlatform("iPhone", Config.iosFormat);
SetPlatform("WebGL", Config.webglFormat);
var packingSettings = new SpriteAtlasPackingSettings
{
padding = Config.padding,
enableRotation = Config.enableRotation,
blockOffset = Config.blockOffset,
enableTightPacking = Config.tightPacking,
enableAlphaDilation = true
};
spriteAtlasAsset.SetPackingSettings(packingSettings);
}
#endif
private static void ConfigureAtlasSettings(SpriteAtlas atlas) private static void ConfigureAtlasSettings(SpriteAtlas atlas)
{ {
@ -249,6 +284,7 @@ public static class EditorSpriteSaveInfo
padding = Config.padding, padding = Config.padding,
enableRotation = Config.enableRotation, enableRotation = Config.enableRotation,
blockOffset = Config.blockOffset, blockOffset = Config.blockOffset,
enableTightPacking = Config.tightPacking,
}; };
atlas.SetPackingSettings(packingSettings); atlas.SetPackingSettings(packingSettings);
} }