From eb3d56c9e8224a71ddcba858c19f955ddf605644 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Tue, 1 Dec 2020 16:20:12 +0100 Subject: [PATCH] [unity] Fixed Atlas asset assignment upon import which did not prioritize an atlas of the same name as the skeleton. Closes #1818. --- .../Editor/Asset Types/SkeletonDataAssetInspector.cs | 3 ++- .../Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs index 0d28252d2..0579ab53b 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Asset Types/SkeletonDataAssetInspector.cs @@ -96,7 +96,8 @@ namespace Spine.Unity.Editor { public void UpdateSkeletonData () { preview.Clear(); InitializeEditor(); - EditorUtility.SetDirty(targetSkeletonDataAsset); + if (targetSkeletonDataAsset) + EditorUtility.SetDirty(targetSkeletonDataAsset); } void InitializeEditor () { diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs index 54988fdc1..d0a973e72 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/AssetUtility.cs @@ -324,9 +324,13 @@ namespace Spine.Unity.Editor { #if SPINE_TK2D IngestSpineProject(loadedAsset, null); #else + string skeletonName = Path.GetFileNameWithoutExtension(skeletonPath); var atlasesForSkeleton = FindAtlasesAtPath(dir); - atlasesForSkeleton.AddRange(newAtlases); + atlasesForSkeleton = atlasesForSkeleton.Union(newAtlases).ToList(); var requiredPaths = GetRequiredAtlasRegions(skeletonPath); + atlasesForSkeleton.Sort((a, b) => ( + string.CompareOrdinal(b.name, skeletonName) + - string.CompareOrdinal(a.name, skeletonName))); var atlasMatch = GetMatchingAtlas(requiredPaths, atlasesForSkeleton); if (atlasMatch != null || requiredPaths.Count == 0) { IngestSpineProject(loadedAsset, atlasMatch);