/// <summary> /// Paste localPosition, localRotation and localScale from clipboard as formated string to selected objetc /// </summary> public static void PasteTransformHierarchy() { Transform[] ts = Selection.transforms; if (ts != null && ts.Length > 0) { string tData = EditorGUIUtility.systemCopyBuffer; if (!string.IsNullOrEmpty(tData)) { try { Skill.Framework.IO.XmlDocument document = new Framework.IO.XmlDocument(); document.LoadXml(tData); if (document.FirstChild != null) { TransformData td = new TransformData(); td.Load(document.FirstChild); foreach (var t in ts) { td.Paste(t); } Debug.Log("Hierarchy Transform pasted."); } else { Debug.Log("Invalid Hierarchy Transform data."); } } catch { Debug.Log("Invalid Hierarchy Transform data."); } } else { Debug.Log("Invalid Hierarchy Transform data."); } } }
public void Load(XmlElement e) { this.Name = e.GetAttributeValueAsString("TName", "Transform"); XmlElement p = e["Position"]; XmlElement lp = e["LocalPosition"]; XmlElement ls = e["LocalScale"]; XmlElement r = e["Rotation"]; XmlElement lr = e["LocalRotation"]; if (p != null) { _Position.Load(p); } if (lp != null) { _LocalPosition.Load(lp); } if (ls != null) { _LocalScale.Load(ls); } if (r != null) { _Rotation.Load(r); } if (lr != null) { _LocalRotation.Load(lr); } XmlElement rt = e["RectTransform"]; if (rt != null) { if (_RectTransform == null) { _RectTransform = new RectTransformData(this); } _RectTransform.Load(rt); } _Children.Clear(); XmlElement children = e["Children"]; if (children != null) { int count = children.GetAttributeValueAsInt("Count", 0); if (count > 0) { this._Children.Capacity = count; foreach (var element in children) { TransformData t = new TransformData(); t.Load(element); _Children.Add(t); } } } }