如何使用将场景树转为XML的函数

小编给大家分享一下如何使用将场景树转为XML的函数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

日前遇到些运行时场景树中未按预期销毁的GameObject

需要打印出场景树结构做前后比较,所以写个这个简单的函数

 public static void ExchangeHierarchy2XmlNode(Transform transParant, System.Xml.XmlNode node,System.Xml.XmlDocument doc)

    {

        int indexCount = transParant.transform.childCount;

        string name = transParant.name;

        if (string.IsNullOrEmpty(name))

        {

            name = "Untitiled";

        }

        name=name.Replace('(', '_');name=name.Replace(')', '_');

        name = name.Replace(' ', '_');

        name = "_" + name;

        System.Xml.XmlElement curentElement = doc.CreateElement(name);

        node.AppendChild(curentElement);

        foreach (Component comp in transParant.gameObject.GetComponents(typeof(MonoBehaviour)))

        {

            System.Xml.XmlAttribute newAttr = doc.CreateAttribute(comp.GetType().Name);

            newAttr.Value = "";

            curentElement.Attributes.Append(newAttr);

        }

        for (int i = 0; i < indexCount; i++)

        {

            Transform transChild = transParant.transform.GetChild(i);

            ExchangeHierarchy2XmlNode(transChild, curentElement, doc);

        }

    }

看完了这篇文章,相信你对“如何使用将场景树转为XML的函数”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!