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