BoneComponent's kinda buggy right now. Doesn't detect flips. Transform caching is a bit weird. Stuff like that.
I promised Nate I'd fix it soon after skinning was implemented but I haven't gotten to doing it yet. Someone else wrote the original code and I modified it a bit.
I'll take a look at it now. From what I remember though, it always took the z position of its parent, or if it's parented under the SkeletonAnimation's transform, its local z is always 0. I think.
Can you describe to me how you're using BoneComponent or how you intend to use it?
Are you attaching it programmatically? Or is it already part of a prefab? Do you need it to be parented under the SkeletonAnimation's Transform?
I'm not sure what the math behind this does but I assume that's what's causing your problems:
cachedTransform.position = skeletonTransform.TransformPoint(new Vector3(bone.worldX, bone.worldY, cachedTransform.position.z));
I'll continue looking.
I'm suspecting this has something to do with scale affecting the positions.