private void ReadBone(SpriterHierarchy hierarchy, XmlElement child)
{
var bone = new SpriterMainlineBone();
hierarchy.bones.Add(bone);
Vector2 position = Vector2.zero, scale = Vector2.zero;
Color color = Color.white;
foreach (XmlAttribute attribute in child.Attributes)
{
// id
if (attribute.Name.Equals("id"))
bone.ID = int.Parse(attribute.Value);
// parent
else if (attribute.Name.Equals("parent"))
bone.parent = int.Parse(attribute.Value);
// x, y
else if (attribute.Name.Equals("x"))
position.x = float.Parse(attribute.Value);
else if (attribute.Name.Equals("y"))
position.y = float.Parse(attribute.Value);
// angle
else if (attribute.Name.Equals("angle"))
bone.angle = float.Parse(attribute.Value);
// scale_x, scale_y
else if (attribute.Name.Equals("scale_x"))
scale.x = float.Parse(attribute.Value);
else if (attribute.Name.Equals("scale_y"))
scale.y = float.Parse(attribute.Value);
// r, g, b, a
else if (attribute.Name.Equals("r"))
color.r = float.Parse(attribute.Value);
else if (attribute.Name.Equals("g"))
color.g = float.Parse(attribute.Value);
else if (attribute.Name.Equals("b"))
color.b = float.Parse(attribute.Value);
else if (attribute.Name.Equals("a"))
color.a = float.Parse(attribute.Value);
}
// Assign vector values
bone.position = position;
bone.color = color;
foreach (XmlElement child2 in child)
{
// meta_data
if (child2.Name.Equals("meta_data"))
ReadMetaData(child2, bone.metaData);
}
}