Ejemplo n.º 1
0
        /// <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.");
                }
            }
        }
Ejemplo n.º 2
0
        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);
                    }
                }
            }
        }