diff --git a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs index aaf574906..85a8f1af5 100644 --- a/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs +++ b/spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonGraphicInspector.cs @@ -35,6 +35,10 @@ #define HAS_CULL_TRANSPARENT_MESH #endif +#if UNITY_2017_2_OR_NEWER +#define NEWPLAYMODECALLBACKS +#endif + using System.Reflection; using UnityEditor; using UnityEngine; @@ -141,9 +145,32 @@ namespace Spine.Unity.Editor { separatorSlotNames = so.FindProperty("separatorSlotNames"); separatorSlotNames.isExpanded = true; + +#if NEWPLAYMODECALLBACKS + EditorApplication.playModeStateChanged += OnPlaymodeChanged; +#else + EditorApplication.playmodeStateChanged += OnPlaymodeChanged; +#endif } void OnDisable () { +#if NEWPLAYMODECALLBACKS + EditorApplication.playModeStateChanged -= OnPlaymodeChanged; +#else + EditorApplication.playmodeStateChanged -= OnPlaymodeChanged; +#endif + DisableEditReferenceRectMode(); + } + +#if NEWPLAYMODECALLBACKS + void OnPlaymodeChanged (PlayModeStateChange mode) { +#else + void OnPlaymodeChanged () { +#endif + DisableEditReferenceRectMode(); + } + + void DisableEditReferenceRectMode () { foreach (UnityEngine.Object c in targets) { SkeletonGraphic component = (SkeletonGraphic)c; component.EditReferenceRect = false; diff --git a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs index e4df73edc..ca174711e 100644 --- a/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs +++ b/spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonGraphic.cs @@ -321,8 +321,8 @@ namespace Spine.Unity { public virtual void Update () { #if UNITY_EDITOR + UpdateReferenceRectSizes(); if (!Application.isPlaying) { - UpdateReferenceRectSizes(); Update(0f); return; }