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;
|
}
|
|
}
|