From 3a1b77871f8427d84fd5515411c917093ab0c97e Mon Sep 17 00:00:00 2001 From: pharan Date: Wed, 23 Aug 2017 18:35:17 +0800 Subject: [PATCH] [unity] Bone.SetPositionSkeletonSpace --- .../Assets/spine-unity/SkeletonExtensions.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/spine-unity/Assets/spine-unity/SkeletonExtensions.cs b/spine-unity/Assets/spine-unity/SkeletonExtensions.cs index 0e2dd1f60..e178907a0 100644 --- a/spine-unity/Assets/spine-unity/SkeletonExtensions.cs +++ b/spine-unity/Assets/spine-unity/SkeletonExtensions.cs @@ -185,6 +185,20 @@ namespace Spine.Unity { bone.WorldToLocal(worldPosition.x, worldPosition.y, out o.x, out o.y); return o; } + + /// Sets the skeleton-space position of a bone. + /// The local position in its parent bone space, or in skeleton space if it is the root bone. + public static Vector2 SetPositionSkeletonSpace (this Bone bone, Vector2 skeletonSpacePosition) { + if (bone.parent == null) { // root bone + bone.SetPosition(skeletonSpacePosition); + return skeletonSpacePosition; + } else { + var parent = bone.parent; + Vector2 parentLocal = parent.WorldToLocal(skeletonSpacePosition); + bone.SetPosition(parentLocal); + return parentLocal; + } + } #endregion #region Attachments