// [UNITY-SKILL:SPRITEATLAS] using UnityEditor; using UnityEditor.U2D; using UnityEngine; /// /// Demonstrates proper editor configuration for SpriteAtlas V2. /// Always use SpriteAtlasImporter for all settings in editor code. /// public static class EditorConfigurationExample { /// /// Configures an existing atlas asset with proper editor settings. /// This is the correct pattern - create with SpriteAtlasAsset, then configure via SpriteAtlasImporter. /// public static void ConfigureSpriteAtlas(string atlasPath) { // Step 1: Ensure Sprite Packer is enabled EditorSettings.spritePackerMode = SpritePackerMode.SpriteAtlasV2; // Step 2: Get the importer for configuration SpriteAtlasImporter importer = AssetImporter.GetAtPath(atlasPath) as SpriteAtlasImporter; if (importer == null) { Debug.LogError($"Could not get SpriteAtlasImporter for {atlasPath}"); return; } // Step 3: Configure texture settings via importer var textureSettings = importer.textureSettings; textureSettings.generateMipMaps = false; textureSettings.filterMode = FilterMode.Bilinear; importer.textureSettings = textureSettings; // Step 4: Configure packing settings var packingSettings = importer.packingSettings; packingSettings.padding = 2; packingSettings.enableRotation = true; packingSettings.enableTightPacking = true; // Step 5: Configure platform settings var platformSettings = importer.GetPlatformSettings("DefaultTexturePlatform");; platformSettings.maxTextureSize = 2048; platformSettings.format = TextureImporterFormat.ASTC_6x6; platformSettings.compressionQuality = 100; importer.GetPlatformSettings("DefaultTexturePlatform"); // Step 6: Set build inclusion importer.includeInBuild = true; // Step 7: CRITICAL - Save and reimport to apply changes importer.SaveAndReimport(); Debug.Log($"Configured atlas at {atlasPath}"); } /// /// Configures platform-specific settings for multiple platforms. /// public static void ConfigurePlatformSettings(string atlasPath) { SpriteAtlasImporter importer = AssetImporter.GetAtPath(atlasPath) as SpriteAtlasImporter; // Mobile platform (Android/iOS) importer.SetPlatformSettings(new TextureImporterPlatformSettings { name = "Android", maxTextureSize = 1024, format = TextureImporterFormat.ETC2_RGB4, compressionQuality = 100 }); importer.SetPlatformSettings(new TextureImporterPlatformSettings { name = "iOS", maxTextureSize = 1024, format = TextureImporterFormat.ASTC_6x6, compressionQuality = 100 }); // Desktop platform (Windows/Mac/Linux) importer.SetPlatformSettings(new TextureImporterPlatformSettings { name = "Standalone", maxTextureSize = 1024, format = TextureImporterFormat.DXT5, compressionQuality = 100 }); // Save and reimport importer.SaveAndReimport(); } }