• Unity3D 使用XML进行简单的配置文件改动


    1、首先是看看效果图:

    開始执行项目例如以下图所看到的

    2、点击绿色button改动配置文件再点击改动button成功改动方块颜色


    3、接了下是实现的过程:

    首先在Hierarchy创建一个cube。其次在Assets下分别创建Scenes和Scripts目录,各自是用来保存的的当前的场景和我们所写的脚本。在Scripts目录以下右键创建一个C#脚本,接我们在脚本里面開始创建一个XML文件和相应的目录。在外部声明一个private string m_sXmlPath;用来显示xml路径。接着在Start()方法中配置和创建XML,

    void Start () {
    m_sXmlPath = Application.dataPath + "/Configs/config.xml";
    Debug.Log("Application Path:" + Application.dataPath);
    Debug.Log("config.xml Path:" + m_sXmlPath);
    CreateXml();//创建XML
    }

    创建XML方法例如以下:

    private void CreateXml(){
    if(!File.Exists(m_sXmlPath))//假设不存在这个文件夹我们就创建一个这种文件夹

                {
    XmlDocument xmlDoc = new XmlDocument();
    XmlElement data = xmlDoc.CreateElement("data");
    xmlDoc.AppendChild(data);
    XmlElement color = xmlDoc.CreateElement("color");
    data.AppendChild(color);
    xmlDoc.Save(m_sXmlPath);
    Debug.Log("创建XML完成");
    }
    }

    创建形成之后我们点击XML会有例如以下的信息在里面:


    相应的我们须要更新我们改动的XML文件:

    private void UpdateXML(uint color){
    if(File.Exists(m_sXmlPath))

                  {
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(m_sXmlPath);
    XmlNode colorNode = xmlDoc.SelectSingleNode("data/color");
    colorNode.InnerText = color.ToString();
    xmlDoc.Save(m_sXmlPath);
    Debug.Log("改动成功:" + color);

    }
    }

    接着就是实现方块的颜色的改动:

    private void ModifyCubeColor(){
    if(File.Exists(m_sXmlPath)){
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(m_sXmlPath);
    XmlNode colorNode = xmlDoc.SelectSingleNode("data/color");
    uint color = Convert.ToUInt32(colorNode.InnerText);
    Debug.Log("读取的Color:" + color);


    GameObject cube = GameObject.Find("Cube");
    if(color == 0xff0000){
    cube.renderer.material.color = Color.red;
    }else if(color == 0x00ff00){
    cube.renderer.material.color = Color.green;
    }
    }
    }

    我们要实现如效果图中的点击button就会改动相应的方块,我们须要创建我们的button:

    void OnGUI(){
    //create modify color buttons
    GUI.Label(new Rect(10,10,200,30),"改动配置文件");
    if(GUI.Button(new Rect(10,40,100,30),"红色")){
    UpdateXML(0xff0000);
    }
    if(GUI.Button(new Rect(10,70,100,30),"绿色")){
    UpdateXML(0x00ff00);
    }


    //create button  use to modify Cube'color
    GUI.Label(new Rect(10,110,200,30),"依据配置文件改动方块");
    if(GUI.Button(new Rect(10,140,200,30),"改动方块")){
    ModifyCubeColor();
    }

    }

  • 相关阅读:
    【1118 | Day61】Vue中的循环以及修改差值表达式
    【1118 | Day61】Vue成员获取
    【1118 | Day61】Vue事件获取当前对象
    【1118 | Day61】Vue的使用
    【1113 | Day60】Vue介绍
    【1113 | Day60】灵魂拷问:什么是虚拟DOM?
    【1105 | Day59】灵魂拷问:为什么要在虚拟环境下进行 django 的开发?
    【1101 | Day58】一篇文章彻底理解cookie,session,token
    CSS中控制换行的四种属性
    弹出框居中显示
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7298277.html
Copyright © 2020-2023  润新知