From 1129ddfbfebea4c7518742f7cafd51c05118573c Mon Sep 17 00:00:00 2001 From: Artyom Sovetnikov <2056864+Elringus@users.noreply.github.com> Date: Fri, 15 Apr 2022 11:51:46 +0300 Subject: [PATCH] preserve existing settings (#25) --- .../Editor/Editors/AtlasBuilder.cs | 8 +- .../Editor/Processors/TextureSerializer.cs | 17 ++-- .../Editor/Processors/TextureSettings.cs | 74 ++++++++++++++++++ .../Editor/Processors/TextureSettings.cs.meta | 3 + Assets/SpriteDicing/package.json | 6 +- Assets/Tests/Editor/TextureSerializerTest.cs | 69 +++++++++++++++- Packages/manifest.json | 8 +- Packages/packages-lock.json | 4 +- SpriteDicing.unitypackage | Bin 24689 -> 25800 bytes 9 files changed, 166 insertions(+), 23 deletions(-) create mode 100644 Assets/SpriteDicing/Editor/Processors/TextureSettings.cs create mode 100644 Assets/SpriteDicing/Editor/Processors/TextureSettings.cs.meta diff --git a/Assets/SpriteDicing/Editor/Editors/AtlasBuilder.cs b/Assets/SpriteDicing/Editor/Editors/AtlasBuilder.cs index d83ad68..d37ffb0 100644 --- a/Assets/SpriteDicing/Editor/Editors/AtlasBuilder.cs +++ b/Assets/SpriteDicing/Editor/Editors/AtlasBuilder.cs @@ -68,11 +68,13 @@ private List DiceTextures (IReadOnlyList sourceText private List PackTextures (IReadOnlyList dicedTextures) { DisplayProgressBar("Packing dices...", .5f); + var settings = new TextureSettings(); + settings.TryImportExisting(TexturesProperty.GetArrayElementAtIndex(0).objectReferenceValue as Texture); DeleteAtlasTextures(); var basePath = atlasPath.Substring(0, atlasPath.LastIndexOf(".", StringComparison.Ordinal)); - var textureSerializer = new TextureSerializer(basePath); - var texturePacker = new TexturePacker(textureSerializer, UVInset, ForceSquare, AtlasSizeLimit, UnitSize, Padding); - var atlasTextures = texturePacker.Pack(dicedTextures); + var serializer = new TextureSerializer(basePath, settings); + var packer = new TexturePacker(serializer, UVInset, ForceSquare, AtlasSizeLimit, UnitSize, Padding); + var atlasTextures = packer.Pack(dicedTextures); SaveAtlasTextures(); return atlasTextures; diff --git a/Assets/SpriteDicing/Editor/Processors/TextureSerializer.cs b/Assets/SpriteDicing/Editor/Processors/TextureSerializer.cs index f23c133..f701ac1 100644 --- a/Assets/SpriteDicing/Editor/Processors/TextureSerializer.cs +++ b/Assets/SpriteDicing/Editor/Processors/TextureSerializer.cs @@ -10,10 +10,12 @@ namespace SpriteDicing public class TextureSerializer : ITextureSerializer { private readonly string basePath; + private readonly TextureSettings settings; - public TextureSerializer (string basePath) + public TextureSerializer (string basePath, TextureSettings settings) { this.basePath = basePath; + this.settings = settings; } public Texture2D Serialize (Texture2D texture) @@ -21,8 +23,8 @@ public Texture2D Serialize (Texture2D texture) var filePath = BuildFilePath(); SaveAsPNG(texture, filePath); var png = AssetDatabase.LoadAssetAtPath(filePath); - var maxSize = Mathf.Max(texture.width, texture.height); - ApplyImportSettings(filePath, Mathf.NextPowerOfTwo(maxSize)); + var maxSize = Mathf.NextPowerOfTwo(Mathf.Max(texture.width, texture.height)); + ApplyImportSettings(filePath, maxSize); Object.DestroyImmediate(texture); return png; } @@ -35,7 +37,7 @@ private string BuildFilePath () return path; } - private static void SaveAsPNG (Texture2D texture, string filePath) + private void SaveAsPNG (Texture2D texture, string filePath) { var bytes = texture.EncodeToPNG(); using (var fileStream = File.Create(filePath)) @@ -44,13 +46,10 @@ private static void SaveAsPNG (Texture2D texture, string filePath) AssetDatabase.Refresh(); } - private static void ApplyImportSettings (string filePath, int maxSize) + private void ApplyImportSettings (string filePath, int maxSize) { var importer = (TextureImporter)AssetImporter.GetAtPath(filePath); - importer.textureType = TextureImporterType.Default; - importer.alphaIsTransparency = true; - importer.mipmapEnabled = false; - importer.textureCompression = TextureImporterCompression.Uncompressed; + settings.ApplyExistingOrDefault(importer); importer.maxTextureSize = maxSize; AssetDatabase.ImportAsset(filePath); } diff --git a/Assets/SpriteDicing/Editor/Processors/TextureSettings.cs b/Assets/SpriteDicing/Editor/Processors/TextureSettings.cs new file mode 100644 index 0000000..0e47798 --- /dev/null +++ b/Assets/SpriteDicing/Editor/Processors/TextureSettings.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using System.Reflection; +using UnityEditor; +using UnityEngine; + +namespace SpriteDicing +{ + public class TextureSettings + { + private const string defaultPlatformId = "default"; + private static readonly string[] platformIds = GetPlatformIds(); + private readonly TextureImporterSettings @base = new TextureImporterSettings(); + private readonly Dictionary platforms = + new Dictionary(); + + public void TryImportExisting (Texture texture) + { + if (!TryGetTextureImporter(texture, out var importer)) return; + importer.ReadTextureSettings(@base); + foreach (var platformId in platformIds) + platforms[platformId] = importer.GetPlatformTextureSettings(platformId); + platforms[defaultPlatformId] = importer.GetDefaultPlatformTextureSettings(); + } + + public void ApplyExistingOrDefault (TextureImporter importer) + { + if (platforms.Count == 0) ApplyDefault(importer); + else ApplyExisting(importer); + } + + private bool TryGetTextureImporter (Texture texture, out TextureImporter importer) + { + var assetPath = AssetDatabase.GetAssetPath(texture); + importer = AssetImporter.GetAtPath(assetPath) as TextureImporter; + return importer != null; + } + + private void ApplyDefault (TextureImporter importer) + { + importer.textureType = TextureImporterType.Default; + importer.alphaIsTransparency = true; + importer.mipmapEnabled = false; + importer.textureCompression = TextureImporterCompression.Uncompressed; + } + + private void ApplyExisting (TextureImporter importer) + { + importer.SetTextureSettings(@base); + foreach (var kv in platforms) + if (kv.Key == defaultPlatformId || kv.Value.overridden) + importer.SetPlatformTextureSettings(kv.Value); + } + + [SuppressMessage("ReSharper", "PossibleNullReferenceException")] + private static string[] GetPlatformIds () + { + // https://github.com/Unity-Technologies/UnityCsReference/blob/2019.4/Editor/Mono/BuildPipeline/BuildPlatform.cs + + Type platformsType = default, platformType = default; + foreach (var type in Assembly.GetAssembly(typeof(Editor)).GetTypes()) + if (type.Name == "BuildPlatforms") platformsType = type; + else if (type.Name == "BuildPlatform") platformType = type; + else if (platformsType != null && platformType != null) break; + var platformsInstance = platformsType.GetProperty("instance").GetValue(null); + var validPlatforms = (IEnumerable)platformsType + .GetMethod("GetValidPlatforms", Array.Empty()) + .Invoke(platformsInstance, null); + return validPlatforms.Select(p => (string)platformType.GetField("name").GetValue(p)).ToArray(); + } + } +} diff --git a/Assets/SpriteDicing/Editor/Processors/TextureSettings.cs.meta b/Assets/SpriteDicing/Editor/Processors/TextureSettings.cs.meta new file mode 100644 index 0000000..b29ee6a --- /dev/null +++ b/Assets/SpriteDicing/Editor/Processors/TextureSettings.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d59c566b8064422993c144dfb3c631be +timeCreated: 1649454642 \ No newline at end of file diff --git a/Assets/SpriteDicing/package.json b/Assets/SpriteDicing/package.json index bc01567..79c0cab 100644 --- a/Assets/SpriteDicing/package.json +++ b/Assets/SpriteDicing/package.json @@ -1,11 +1,11 @@ { "name": "com.elringus.spritedicing", - "version": "1.6.1", + "version": "1.7.0", "displayName": "SpriteDicing", - "description": "Unity extension for reusing sprite texture areas.", + "description": "Allows dicing sprite textures into atlases to eliminate identical parts.", "unity": "2019.4", "author": { "name": "Elringus", - "url": "https://elringus.me" + "url": "https://github.com/Elringus" } } diff --git a/Assets/Tests/Editor/TextureSerializerTest.cs b/Assets/Tests/Editor/TextureSerializerTest.cs index 0979242..2131927 100644 --- a/Assets/Tests/Editor/TextureSerializerTest.cs +++ b/Assets/Tests/Editor/TextureSerializerTest.cs @@ -13,6 +13,7 @@ public class TextureSerializerTest private const string tempRoot = Helpers.TextureFolderPath + "/" + tempFolder; private string basePath; + private TextureSettings textureSettings; private TextureSerializer serializer; [SetUp] @@ -20,7 +21,8 @@ public void SetUp () { AssetDatabase.CreateFolder(Helpers.TextureFolderPath, tempFolder); basePath = $"{tempRoot}/{Guid.NewGuid():N}"; - serializer = new TextureSerializer(basePath); + textureSettings = new TextureSettings(); + serializer = new TextureSerializer(basePath, textureSettings); } [TearDown] @@ -46,7 +48,7 @@ public void SerializedEqualsOriginalTexture () } [Test] - public void ImportSettingsAreApplied () + public void DefaultImportSettingsAreApplied () { var importer = GetImporter(Serialize()); AreEqual(TextureImporterType.Default, importer.textureType); @@ -56,6 +58,69 @@ public void ImportSettingsAreApplied () AreEqual(1, importer.maxTextureSize); } + [Test] + public void ExistingImportSettingsArePreserved () + { + var otherTexture = Serialize(); + var otherImporter = GetImporter(otherTexture); + otherImporter.alphaIsTransparency = false; + otherImporter.textureCompression = TextureImporterCompression.Compressed; + otherImporter.SaveAndReimport(); + + textureSettings.TryImportExisting(otherTexture); + var importer = GetImporter(Serialize()); + IsFalse(importer.alphaIsTransparency); + AreEqual(TextureImporterCompression.Compressed, importer.textureCompression); + } + + [Test] + public void ExistingPlatformSpecificSettingsArePreserved () + { + var otherPlatform = "Standalone"; + var otherTexture = Serialize(); + var otherImporter = GetImporter(otherTexture); + var otherSettings = new TextureImporterPlatformSettings { + name = otherPlatform, + overridden = true, + textureCompression = TextureImporterCompression.Compressed + }; + otherImporter.SetPlatformTextureSettings(otherSettings); + otherImporter.SaveAndReimport(); + + textureSettings.TryImportExisting(otherTexture); + var importer = GetImporter(Serialize()); + var settings = importer.GetPlatformTextureSettings(otherPlatform); + AreEqual(TextureImporterCompression.Compressed, settings.textureCompression); + } + + [Test] + public void NonOverriddenPlatformSpecificSettingsAreIgnored () + { + var otherPlatform = "Standalone"; + var otherTexture = Serialize(); + var otherImporter = GetImporter(otherTexture); + var otherSettings = new TextureImporterPlatformSettings { + name = otherPlatform, + overridden = false, + textureCompression = TextureImporterCompression.Compressed + }; + otherImporter.SetPlatformTextureSettings(otherSettings); + otherImporter.SaveAndReimport(); + + textureSettings.TryImportExisting(otherTexture); + var importer = GetImporter(Serialize()); + var settings = importer.GetPlatformTextureSettings(otherPlatform); + AreEqual(TextureImporterCompression.Uncompressed, settings.textureCompression); + } + + [Test] + public void SettingsFromInvalidObjectAreIgnored () + { + var obj = new UnityEngine.Object(); + textureSettings.TryImportExisting(obj as Texture); + DoesNotThrow(() => Serialize()); + } + [Test] public void MultipleTexturesNamedCorrectly () { diff --git a/Packages/manifest.json b/Packages/manifest.json index f24c4d8..7940abb 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,10 +1,10 @@ { "dependencies": { - "com.unity.modules.imgui": "1.0.0", - "com.unity.ugui": "1.0.0", "com.unity.2d.sprite": "1.0.0", - "com.unity.test-framework": "1.1.30", + "com.unity.ide.rider": "3.0.13", + "com.unity.test-framework": "1.1.31", "com.unity.testtools.codecoverage": "1.1.1", - "com.unity.ide.rider": "3.0.12" + "com.unity.ugui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" } } diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 6aab311..7541a41 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -14,7 +14,7 @@ "url": "https://packages.unity.com" }, "com.unity.ide.rider": { - "version": "3.0.12", + "version": "3.0.13", "depth": 0, "source": "registry", "dependencies": { @@ -30,7 +30,7 @@ "url": "https://packages.unity.com" }, "com.unity.test-framework": { - "version": "1.1.30", + "version": "1.1.31", "depth": 0, "source": "registry", "dependencies": { diff --git a/SpriteDicing.unitypackage b/SpriteDicing.unitypackage index 2136626c94fe750d7eb5e3428863eed0b72e491f..f298fa25fc53fbbbcaedae107f162fb9e2e94fbe 100644 GIT binary patch literal 25800 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 AD*ylh literal 24689 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 U9(w4Zhld9L0ICB`