From bf93b00e6b22d7343d63bac5b95d3efd303fef66 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Thu, 18 Apr 2019 19:53:03 +0200 Subject: [PATCH] [unity] Fixed SkeletonDataAsset auto-update mechanism on .json file change for both scene view and inspector. Closes #1330. --- .../spine-unity/Editor/SkeletonDataAssetInspector.cs | 8 +++++++- .../Editor/spine-unity/Editor/SpineEditorUtilities.cs | 9 ++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/SkeletonDataAssetInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/SkeletonDataAssetInspector.cs index ea1e35589..f6f490125 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/SkeletonDataAssetInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/SkeletonDataAssetInspector.cs @@ -78,7 +78,7 @@ namespace Spine.Unity.Editor { string TargetAssetGUID { get { return AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(targetSkeletonDataAsset)); } } string LastSkinKey { get { return TargetAssetGUID + "_lastSkin"; } } string LastSkinName { get { return EditorPrefs.GetString(LastSkinKey, ""); } } - + void OnEnable () { InitializeEditor(); } @@ -93,6 +93,12 @@ namespace Spine.Unity.Editor { OnDestroy(); } + public void UpdateSkeletonData () { + preview.Clear(); + InitializeEditor(); + EditorUtility.SetDirty(targetSkeletonDataAsset); + } + void InitializeEditor () { SpineEditorUtilities.ConfirmInitialization(); targetSkeletonDataAsset = (SkeletonDataAsset)target; diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/SpineEditorUtilities.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/SpineEditorUtilities.cs index 018bfe9b3..df99008a4 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/SpineEditorUtilities.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/SpineEditorUtilities.cs @@ -800,6 +800,12 @@ namespace Spine.Unity.Editor { break; #endif } + + SkeletonDataAssetInspector[] skeletonDataInspectors = Resources.FindObjectsOfTypeAll(); + foreach (var inspector in skeletonDataInspectors) { + inspector.UpdateSkeletonData(); + } + // Any post processing of images // Under some circumstances (e.g. on first import) SkeletonGraphic objects @@ -818,7 +824,7 @@ namespace Spine.Unity.Editor { } } } - + static void ReloadSkeletonData (string skeletonJSONPath) { string dir = Path.GetDirectoryName(skeletonJSONPath); TextAsset textAsset = AssetDatabase.LoadAssetAtPath(skeletonJSONPath); @@ -870,6 +876,7 @@ namespace Spine.Unity.Editor { if (currentHash != null) EditorPrefs.SetString(guid + "_hash", currentHash); } + DataReloadHandler.ReloadSceneSkeletonComponents(skeletonDataAsset); } } }