private void ReadSkeletonBones(SkeletonData skeletonData, JObject data, float scale)
        {
            foreach (JToken bone in data["bones"].Children())
            {
                BoneData parent = null;
                var parentName = (string) bone["parent"];

                if (parentName != null)
                {
                    parent = skeletonData.FindBone(parentName);
                    if (parent == null)
                    {
                        throw new SerializationException("Parent bone not found: " + parentName);
                    }
                }

                var boneData = new BoneData((String) bone["name"], parent);
                boneData.Length = Read<float>(bone, "length", 0)*scale;
                boneData.X = Read<float>(bone, "x", 0)*scale;
                boneData.Y = Read<float>(bone, "y", 0)*scale;
                boneData.Rotation = Read<float>(bone, "rotation", 0);
                boneData.ScaleX = Read<float>(bone, "scaleX", 1);
                boneData.ScaleY = Read<float>(bone, "scaleY", 1);
                skeletonData.AddBone(boneData);
            }
        }
        private void ReadSkeletonSlots(SkeletonData skeletonData, JObject data)
        {
            foreach (JToken slot in data["slots"].Children())
            {
                var slotName = (String) slot["name"];
                var boneName = (String) slot["bone"];
                BoneData boneData = skeletonData.FindBone(boneName);
                if (boneData == null)
                {
                    throw new SerializationException("Slot bone not found: " + boneName);
                }

                var slotData = new SlotData(slotName, boneData);

                var color = (String) slot["color"];

                if (color != null)
                {
                    slotData.Color = ReadColor(color);
                }

                slotData.AttachmentName = (String) slot["attachment"];

                skeletonData.AddSlot(slotData);
            }
        }
Example #3
0
        public static BoneData GetBoneData(string boneName, SkeletonDataAsset skeletonDataAsset)
        {
            SkeletonData skeletonData = skeletonDataAsset.GetSkeletonData(quiet: true);

            return(skeletonData.FindBone(boneName));
        }