using System;
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
namespace Spine.Unity.Editor {
///
/// Utility class for working with TextureImporter.
///
public static class TextureImporterUtils {
private static IEnumerable GetAllPossiblePlatforms() {
BuildTarget[] buildTargets = (BuildTarget[])Enum.GetValues(typeof(BuildTarget));
var platformNames = buildTargets.Select(x => x.ToString()).ToList();
// Add additional platforms that are not part of BuildTarget enum.
platformNames.Add("Server");
return platformNames.ToArray();
}
public static bool TryDisableOverrides(TextureImporter importer, out List disabledPlatforms) {
IEnumerable platforms = GetAllPossiblePlatforms();
disabledPlatforms = new List();
foreach (string platform in platforms) {
var platformSettings = importer.GetPlatformTextureSettings(platform);
if (!platformSettings.overridden) {
continue;
}
disabledPlatforms.Add(platform);
platformSettings.overridden = false;
importer.SetPlatformTextureSettings(platformSettings);
}
if (disabledPlatforms.Count <= 0) {
return false;
}
importer.SaveAndReimport();
return true;
}
public static void EnableOverrides(TextureImporter importer, List platformsToEnable) {
if (platformsToEnable.Count == 0) {
return;
}
foreach (string platform in platformsToEnable) {
var platformSettings = importer.GetPlatformTextureSettings(platform);
platformSettings.overridden = true;
importer.SetPlatformTextureSettings(platformSettings);
}
importer.SaveAndReimport();
}
}
}