1、首先是看看效果图:
开始运行项目如下图所示
2、点击绿色按钮修改配置文件再点击修改按钮成功修改方块颜色
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; } } }
我们要实现如效果图中的点击按钮就会修改对应的方块,我们需要创建我们的按钮:
void OnGUI(){ //create modify color buttons GUI.Label(new Rect(10,10,200,30),"修改配置文件"); if(GUI.Button(new Rect(10,40,100,"红色")){ UpdateXML(0xff0000); } if(GUI.Button(new Rect(10,70,"绿色")){ UpdateXML(0x00ff00); } //create button use to modify Cube'color GUI.Label(new Rect(10,110,"根据配置文件修改方块"); if(GUI.Button(new Rect(10,140,"修改方块")){ ModifyCubeColor(); } } (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|