using UnityEngine; 
 | 
using UnityEditor; 
 | 
  
 | 
[CreateAssetMenu(menuName = "Config/SpriteSettingConfig")] 
 | 
public class SpriteSettingConfig : ScriptableObject  
 | 
{  
 | 
    public SpriteSetting[] spriteSettings;  
 | 
  
 | 
    [System.Serializable]  
 | 
    public class SpriteSetting  
 | 
    {  
 | 
        public string folderName;  
 | 
        public SpriteMeshType meshType = SpriteMeshType.Tight;  
 | 
        public TextureImporterAlphaSource alphaSource = TextureImporterAlphaSource.FromInput;  
 | 
        public PlatformSetting[] platformSettings;  
 | 
    } 
 | 
  
 | 
    [System.Serializable]  
 | 
    public class PlatformSetting  
 | 
    {  
 | 
        public string name;  
 | 
        public int maxTextureSize = 2048;  
 | 
        public TextureImporterFormat textureFormat = TextureImporterFormat.RGBA32;  
 | 
        public int compressionQuality = 1;  
 | 
    } 
 | 
  
 | 
} 
 | 
  
 | 
  
 | 
public static class SpriteSettingUtility  
 | 
{  
 | 
    public static bool Equal(this SpriteSettingConfig.SpriteSetting _spriteSetting, TextureImporter _textureImporter)  
 | 
    {  
 | 
        if (_spriteSetting.alphaSource != _textureImporter.alphaSource)  
 | 
        {  
 | 
            return false;  
 | 
        }  
 | 
  
 | 
        foreach (var platformSetting in _spriteSetting.platformSettings)  
 | 
        {  
 | 
            var nowPlatformSetting = _textureImporter.GetPlatformTextureSettings(platformSetting.name);  
 | 
            if (nowPlatformSetting == null)  
 | 
            {  
 | 
                continue;  
 | 
            }  
 | 
  
 | 
            if (platformSetting.maxTextureSize != nowPlatformSetting.maxTextureSize)  
 | 
            {  
 | 
                return false;  
 | 
            }  
 | 
  
 | 
            if (platformSetting.textureFormat != nowPlatformSetting.format)  
 | 
            {  
 | 
                return false;  
 | 
            }  
 | 
  
 | 
            if (platformSetting.compressionQuality != nowPlatformSetting.compressionQuality)  
 | 
            {  
 | 
                return false;  
 | 
            }  
 | 
        }  
 | 
  
 | 
        return true;  
 | 
    }  
 | 
  
 | 
} 
 |