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,33 +206,63 @@ public static class EditorSpriteSaveInfo
.ToList(); .ToList();
} }
private static void ConfigureAtlasV2Settings(SpriteAtlasImporter atlasImporter) #if UNITY_2022_1_OR_NEWER
{ private static void ConfigureAtlasV2Settings(SpriteAtlasImporter atlasImporter)
void SetPlatform(string platform, TextureImporterFormat format)
{ {
var settings = atlasImporter.GetPlatformSettings(platform); void SetPlatform(string platform, TextureImporterFormat format)
if (settings == null) return; {
; var settings = atlasImporter.GetPlatformSettings(platform);
settings.overridden = true; if (settings == null) return;
settings.format = format; ;
settings.compressionQuality = Config.compressionQuality; settings.overridden = true;
atlasImporter.SetPlatformSettings(settings); settings.format = format;
settings.compressionQuality = Config.compressionQuality;
atlasImporter.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
};
atlasImporter.packingSettings = packingSettings;
} }
#else
SetPlatform("Android", Config.androidFormat); private static void ConfigureAtlasV2Settings(SpriteAtlasAsset spriteAtlasAsset)
SetPlatform("iPhone", Config.iosFormat);
SetPlatform("WebGL", Config.webglFormat);
var packingSettings = new SpriteAtlasPackingSettings
{ {
padding = Config.padding, void SetPlatform(string platform, TextureImporterFormat format)
enableRotation = Config.enableRotation, {
blockOffset = Config.blockOffset, var settings = spriteAtlasAsset.GetPlatformSettings(platform);
enableTightPacking = Config.tightPacking, if (settings == null) return;
enableAlphaDilation = true ;
}; settings.overridden = true;
atlasImporter.packingSettings = packingSettings; 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);
} }