← Files UnityARCHIVED FILE

skills/manage-sprite-atlas/resources/updatesettingsconfiguration.cs

4.42 KB · Oct 2, 2026 · 00:33 UTC

↓ Download file

// [UNITY-SKILL:SPRITEATLAS]
using UnityEditor;
using UnityEditor.U2D;
using UnityEngine;

/// <summary>
/// Demonstrates updating settings configuration for SpriteAtlases.
/// Shows how to migrate from old configuration patterns to V2.
/// </summary>
public static class UpdateSettingsConfigurationDocumentation
{
    /// <summary>
    /// OLD V1 Pattern: Using SetBuildSettings (NO LONGER AVAILABLE)
    ///
    /// ❌ OLD CODE:
    /// var importer = (SpriteAtlasImporter)AssetImporter.GetAtPath(path);
    /// importer.SetBuildSettings(settings);
    ///
    /// ✅ NEW V2 CODE:
    /// var importer = (SpriteAtlasImporter)AssetImporter.GetAtPath(path);
    /// importer.packingSettings = settings;
    /// importer.SaveAndReimport();
    /// </summary>
    public static void Update_PackingSettings()
    {
        // ===== UPDATING: Packing Settings =====

        string path = "Assets/MyAtlas.spriteatlasv2";

        // ❌ OLD (V1 - Method removed):
        /*
        var importer = (SpriteAtlasImporter)AssetImporter.GetAtPath(path);
        importer.SetBuildSettings(settings); // Compile error!
        */

        // ✅ NEW (V2):
        SpriteAtlasImporter importer = AssetImporter.GetAtPath(path) as SpriteAtlasImporter;
        if (importer != null)
        {
            var packingSettings = importer.packingSettings;
            packingSettings.padding = 2;
            packingSettings.enableTightPacking = true;
            packingSettings.enableRotation = true;
            importer.packingSettings = packingSettings;

            // ✅ CRITICAL: Save and reimport
            importer.SaveAndReimport();
        }
    }

    /// <summary>
    /// OLD V1 Pattern: Direct texture settings modification (CHANGED)
    ///
    /// ❌ OLD CODE:
    /// var importer = (SpriteAtlasImporter)AssetImporter.GetAtPath(path);
    /// importer.textureSettings.filterMode = FilterMode.Trilinear;
    ///
    /// ✅ NEW V2 CODE:
    /// Use SetPlatformTextureSettings() for platform-specific settings
    /// </summary>
    public static void Update_TextureSettings()
    {
        // ===== UPDATING: Texture Settings =====

        string path = "Assets/MyAtlas.spriteatlasv2";

        SpriteAtlasImporter importer = AssetImporter.GetAtPath(path) as SpriteAtlasImporter;
        if (importer != null)
        {
            // ✅ NEW: Use platform-specific texture settings
            importer.SetPlatformSettings(new TextureImporterPlatformSettings
            {
                name = "Standalone",
                maxTextureSize = 1024,
                format = TextureImporterFormat.DXT5,
                compressionQuality = 100
            });

            // ✅ CRITICAL: Save and reimport
            importer.SaveAndReimport();
        }
    }

    /// <summary>
    /// OLD V1 Pattern: Platform settings (RESTRUCTURED)
    ///
    /// ❌ OLD CODE:
    /// var importer = (SpriteAtlasImporter)AssetImporter.GetAtPath(path);
    /// importer.platformSettings.maxTextureSize = 1024;
    ///
    /// ✅ NEW V2 CODE:
    /// Use SetPlatformTextureSettings() for each platform
    /// </summary>
    public static void Update_PlatformSettings()
    {
        // ===== UPDATING: Platform Settings =====

        string path = "Assets/MyAtlas.spriteatlasv2";

        SpriteAtlasImporter importer = AssetImporter.GetAtPath(path) as SpriteAtlasImporter;
        if (importer != null)
        {
            // ✅ NEW: Set platform-specific settings
            // Mobile platform (Android/iOS)
            importer.SetPlatformSettings(new TextureImporterPlatformSettings
            {
                name = "Android",
                maxTextureSize = 1024,
                format = TextureImporterFormat.ETC2_RGB4,
                compressionQuality = 100
            });

            // IOS
            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
            });

            // ✅ CRITICAL: Save and reimport
            importer.SaveAndReimport();
        }
    }
}

SHA-256: f7619ad5771f215c1cf74854a24f2c220f8f89112affb4b578760bd9a9f2099f