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