From e978f2e519892f1c553982532242c1853b06d883 Mon Sep 17 00:00:00 2001 From: pharan Date: Fri, 5 Feb 2016 19:28:15 +0800 Subject: [PATCH] [Unity] Prevent SkeletonAnimation from using AnimationState in edit mode. --- .../Assets/spine-unity/SkeletonAnimation.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/spine-unity/Assets/spine-unity/SkeletonAnimation.cs b/spine-unity/Assets/spine-unity/SkeletonAnimation.cs index e2739dded..af31742c0 100644 --- a/spine-unity/Assets/spine-unity/SkeletonAnimation.cs +++ b/spine-unity/Assets/spine-unity/SkeletonAnimation.cs @@ -133,10 +133,24 @@ public class SkeletonAnimation : SkeletonRenderer, ISkeletonAnimation { state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData()); - if (_animationName != null && _animationName.Length > 0) { + #if UNITY_EDITOR + if (!string.IsNullOrEmpty(_animationName)) { + if (Application.isPlaying) { + state.SetAnimation(0, _animationName, loop); + } else { + // Assume SkeletonAnimation is valid for skeletonData and skeleton. Checked above. + var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(_animationName); + if (animationObject != null) + animationObject.Apply(skeleton, 0f, 0f, false, null); + } + Update(0); + } + #else + if (!string.IsNullOrEmpty(_animationName)) { state.SetAnimation(0, _animationName, loop); Update(0); } + #endif } public virtual void Update () {