From 30fcad4718a6aec028a4916d6c7b9c5a0e7cd65c Mon Sep 17 00:00:00 2001 From: pharan Date: Thu, 9 Feb 2017 07:46:57 +0800 Subject: [PATCH] [unity] Fix BoneFollower inspector. --- .../Editor/BoneFollowerInspector.cs | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/spine-unity/Assets/spine-unity/Editor/BoneFollowerInspector.cs b/spine-unity/Assets/spine-unity/Editor/BoneFollowerInspector.cs index f7ecf47d9..58ac0fce0 100644 --- a/spine-unity/Assets/spine-unity/Editor/BoneFollowerInspector.cs +++ b/spine-unity/Assets/spine-unity/Editor/BoneFollowerInspector.cs @@ -74,6 +74,13 @@ namespace Spine.Unity.Editor { targetBoneFollower = (BoneFollower)target; if (targetBoneFollower.SkeletonRenderer != null) targetBoneFollower.SkeletonRenderer.Initialize(false); + + if (!targetBoneFollower.valid || needsReset) { + targetBoneFollower.Initialize(); + targetBoneFollower.LateUpdate(); + needsReset = false; + SceneView.RepaintAll(); + } } public void OnSceneGUI () { @@ -114,7 +121,7 @@ namespace Spine.Unity.Editor { return; } - if (needsReset) { + if (needsReset && UnityEngine.Event.current.type == EventType.Layout) { targetBoneFollower.Initialize(); targetBoneFollower.LateUpdate(); needsReset = false; @@ -143,11 +150,8 @@ namespace Spine.Unity.Editor { if (targetBoneFollower.valid) { EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(boneName); - if (EditorGUI.EndChangeCheck()) { - serializedObject.ApplyModifiedProperties(); - needsReset = true; - serializedObject.Update(); - } + needsReset |= EditorGUI.EndChangeCheck(); + EditorGUILayout.PropertyField(followBoneRotation); EditorGUILayout.PropertyField(followZPosition); EditorGUILayout.PropertyField(followLocalScale); @@ -169,8 +173,10 @@ namespace Spine.Unity.Editor { var current = UnityEngine.Event.current; bool wasUndo = (current.type == EventType.ValidateCommand && current.commandName == "UndoRedoPerformed"); - if (serializedObject.ApplyModifiedProperties() || wasUndo) + if (wasUndo) targetBoneFollower.Initialize(); + + serializedObject.ApplyModifiedProperties(); } }