diff --git a/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphicMirror.cs b/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphicMirror.cs index 9677c1985..8fa89962b 100644 --- a/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphicMirror.cs +++ b/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphicMirror.cs @@ -1,4 +1,4 @@ -/****************************************************************************** +/****************************************************************************** * Spine Runtimes Software License v2.5 * * Copyright (c) 2013-2016, Esoteric Software @@ -60,14 +60,17 @@ namespace Spine.Unity.Modules { if (restoreOnDisable) RestoreIndependentSkeleton(); } + /// Freeze the SkeletonGraphic on this GameObject, and use the source as the Skeleton to be rendered by the SkeletonGraphic. public void StartMirroring () { if (source == null) return; if (skeletonGraphic == null) return; skeletonGraphic.startingAnimation = string.Empty; - originalSkeleton = skeletonGraphic.Skeleton; - originalFreeze = skeletonGraphic.freeze; + if (originalSkeleton == null) { + originalSkeleton = skeletonGraphic.Skeleton; + originalFreeze = skeletonGraphic.freeze; + } skeletonGraphic.Skeleton = source.skeleton; skeletonGraphic.freeze = true; @@ -75,16 +78,23 @@ namespace Spine.Unity.Modules { skeletonGraphic.OverrideTexture = overrideTexture; } + /// Use a new texture for the SkeletonGraphic. Use this if your source skeleton uses a repacked atlas. public void UpdateTexture (Texture2D newOverrideTexture) { overrideTexture = newOverrideTexture; if (newOverrideTexture != null) skeletonGraphic.OverrideTexture = overrideTexture; } + /// Stops mirroring the source SkeletonRenderer and allows the SkeletonGraphic to become an independent Skeleton component again. public void RestoreIndependentSkeleton () { + if (originalSkeleton == null) + return; + skeletonGraphic.Skeleton = originalSkeleton; skeletonGraphic.freeze = originalFreeze; skeletonGraphic.OverrideTexture = null; + + originalSkeleton = null; } }