1. 程式人生 > >Unity3D 使用XML進行簡單的配置文件改動

Unity3D 使用XML進行簡單的配置文件改動

convert tar gui red 綠色 更新 會有 tap watermark

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();
}

}

Unity3D 使用XML進行簡單的配置文件改動