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); } }
public static BoneData GetBoneData(string boneName, SkeletonDataAsset skeletonDataAsset) { SkeletonData skeletonData = skeletonDataAsset.GetSkeletonData(quiet: true); return(skeletonData.FindBone(boneName)); }