public void Init(UgData.ArmatureData data) { this.name = data.name; this.frameRate = data.frameRate; this.type = data.type; for (int i = 0; i < data.boneDatas.Length; i++) { UgData.BoneData boneData = data.boneDatas[i]; UgBone bone = new UgBone(); //if (boneData.parent != null) //{ // UgBone parent; // bones.TryGetValue(boneData.parent, out parent); // if (null != parent) // { // parent.AddChild(bone); // } //} //else //{ // AddChild(bone); // //bone.parent = this; //} bone.Init(boneData); bones.Add(boneData.name, bone); bonesList.Add(bone); } for (int i = 0; i < data.slotDatas.Length; i++) { UgData.SlotData slotData = data.slotDatas[i]; UgSlot slot = new UgSlot(); slot.Init(slotData); slots.Add(slot.name, slot); //UgBone parent; //bones.TryGetValue(slotData.parent, out parent); //parent.AddChild(slot); slotList.Add(slot); } for (int i = 0; i < data.displayDatas.Length; i++) { UgData.DisplayData disData = data.displayDatas[i]; UgSprite sprite = new UgSprite(); sprite.Init(disData); sprites.Add(disData.name, sprite); //UgSlot parent; //slots.TryGetValue(disData.parent, out parent); //parent.AddChild(sprite); spriteList.Add(sprite); } for (int i = 0; i < data.animations.Length; i++) { UgData.AnimationData animData = data.animations[i]; animations.Add(animData.name, animData); } foreach (var item in bones) { UgTrans trans = item.Value; if (trans.parentName != "") { bones[trans.parentName].AddChild(trans); } else { this.AddChild(trans); } } foreach (var item in slots) { UgTrans trans = item.Value; bones[trans.parentName].AddChild(trans); } foreach (var item in sprites) { UgTrans trans = item.Value; slots[trans.parentName].AddChild(trans); } updateMatrix(); }
public void AddChild(UgTrans trans) { trans.parent = this; children.Add(trans); }