五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

unity教程:存檔系統(tǒng)(XML篇)

2023-07-21 12:36 作者:塵風(fēng)一枚  | 我要投稿

using UnityEngine;

using TMPro;

using System.IO;

using System.Xml;


public class xml_ArchiveManager : MonoBehaviour

{

//需要保存與加載的數(shù)據(jù)

public Data data = new Data();

//需要保存與讀取的游戲內(nèi)數(shù)據(jù)

public TMP_InputField text1;

public TMP_InputField text2;

public TMP_InputField text3;

public TMP_InputField text4;

//定義游戲保存數(shù)據(jù)路徑

public static string savaGameDataPath;


private void Awake()

{

//PS:Application.persistentDataPath獲得的是unity游戲數(shù)據(jù)文件夾的路徑

savaGameDataPath = Application.persistentDataPath;

//debug打印保存數(shù)據(jù)的路徑

Debug.Log(savaGameDataPath);

}


/// <summary>

/// 更新數(shù)據(jù) (將游戲內(nèi)數(shù)據(jù)保存以方便保存到本地)

/// </summary>

private void UpdateData()

{

data.data1 = text1.text;

data.data2 = text2.text;

data.data3 = text3.text;

data.data4 = text4.text;

}


/// <summary>

/// 更新游戲 (將數(shù)據(jù)保存到游戲中以方便游戲進行數(shù)據(jù)操作)

/// </summary>

private void UpdateGame()

{

text1.text = data.data1;

text2.text = data.data2;

text3.text = data.data3;

text4.text = data.data4;

}

/// <summary>

/// 保存游戲數(shù)據(jù)至本地

/// </summary>

public void SavaData()

{

//更新數(shù)據(jù) 方便后續(xù)保存數(shù)據(jù)至本地

UpdateData();


//檢測是否存在該文件夾

if (!Directory.Exists(savaGameDataPath + "/game_Data_xml"))

{

//如果沒有該文件夾則在該路徑下創(chuàng)建一個名為game_Data的文件夾

Directory.CreateDirectory(savaGameDataPath + "/game_Data_xml");

}


//實例化XmlDocument文檔以便調(diào)用XmlDocument實例方法

XmlDocument xml = new XmlDocument();

//使用XmlDocument實例方法CreateElement創(chuàng)建一個節(jié)點

XmlElement chen = xml.CreateElement("Chen");

//使用XmlElement實例方法SetAttribute設(shè)置節(jié)點屬性

chen.SetAttribute("Name", "主節(jié)點");


//使用XmlDocument實例方法CreateElement創(chuàng)建一個節(jié)點 (存檔ID節(jié)點)

XmlElement id = xml.CreateElement("ArchiveID");

//使用XmlElement實例方法SetAttribute設(shè)置節(jié)點屬性 (設(shè)置存檔ID)

id.SetAttribute("ID", "1");

//將存檔ID節(jié)點添加至主節(jié)點中 成為其子節(jié)點

chen.AppendChild(id);


#region 保存數(shù)據(jù)部分

//使用XmlDocument實例方法CreateElement創(chuàng)建一個節(jié)點 (數(shù)據(jù)節(jié)點)

XmlElement data1 = xml.CreateElement("data1");

//將數(shù)據(jù)節(jié)點添加至存檔ID節(jié)點中 成為其子節(jié)點

id.AppendChild(data1);

//通過XmlElement的InnerText屬性設(shè)置節(jié)點信息 (數(shù)據(jù)內(nèi)容)

data1.InnerText = text1.text;


//使用XmlDocument實例方法CreateElement創(chuàng)建一個節(jié)點 (數(shù)據(jù)節(jié)點)

XmlElement data2 = xml.CreateElement("data2");

//將數(shù)據(jù)節(jié)點添加至存檔ID節(jié)點中 成為其子節(jié)點

id.AppendChild(data2);

//通過XmlElement的InnerText屬性設(shè)置節(jié)點信息 (數(shù)據(jù)內(nèi)容)

data2.InnerText = text2.text;


//使用XmlDocument實例方法CreateElement創(chuàng)建一個節(jié)點 (數(shù)據(jù)節(jié)點)

XmlElement data3 = xml.CreateElement("data3");

//將數(shù)據(jù)節(jié)點添加至存檔ID節(jié)點中 成為其子節(jié)點

id.AppendChild(data3);

//通過XmlElement的InnerText屬性設(shè)置節(jié)點信息 (數(shù)據(jù)內(nèi)容)

data3.InnerText = text3.text;


//使用XmlDocument實例方法CreateElement創(chuàng)建一個節(jié)點 (數(shù)據(jù)節(jié)點)

XmlElement data4 = xml.CreateElement("data4");

//將數(shù)據(jù)節(jié)點添加至存檔ID節(jié)點中 成為其子節(jié)點

id.AppendChild(data4);

//通過XmlElement的InnerText屬性設(shè)置節(jié)點信息 (數(shù)據(jù)內(nèi)容)

data4.InnerText = text4.text;

#endregion


//將主節(jié)點添加至XmlDocument文檔中

xml.AppendChild(chen);

//將XmlDocument文檔內(nèi)容保存到路徑所在文件中

xml.Save(savaGameDataPath + "/game_Data_xml/" + "data.xml");

}


/// <summary>

/// 讀取本地數(shù)據(jù)至游戲

/// </summary>

public void LoadData()

{

//檢測是否存在該文件

if (File.Exists(savaGameDataPath + "/game_Data_xml/data.xml"))

{

//使用File靜態(tài)方法Open讀取保存在本地的數(shù)據(jù)文件

using (FileStream file = File.Open(savaGameDataPath + "/game_Data_xml/data.xml", FileMode.Open))

{

//實例化XmlDocument文檔以便調(diào)用XmlDocument實例方法

XmlDocument xml = new XmlDocument();

//使用XmlDocument實例方法Load加載xml文件內(nèi)容

xml.Load(file);


XmlNodeList xmlNodeList = xml.GetElementsByTagName("ArchiveID");


//需要讀取的存檔的ID值

string ID = "1";

//讀取所有存檔信息

foreach (XmlNode item in xmlNodeList)

{

//判斷是否是需要的存檔

if(ID == item.Attributes[0].Value)

{

//將對應(yīng)存檔ID節(jié)點下的子節(jié)點信息保存下來

data.data1 = item.ChildNodes[0].InnerText;

data.data2 = item.ChildNodes[1].InnerText;

data.data3 = item.ChildNodes[2].InnerText;

data.data4 = item.ChildNodes[3].InnerText;

}

}

}

//更新游戲 把本地數(shù)據(jù)更新到游戲中

UpdateGame();

}

}


}

unity教程:存檔系統(tǒng)(XML篇)的評論 (共 條)

分享到微博請遵守國家法律
弋阳县| 阿合奇县| 桐庐县| 沂源县| 屏东县| 九江市| 汉川市| 开远市| 鸡泽县| 通河县| 商都县| 新乡县| 水富县| 花莲市| 文水县| 泰和县| 方正县| 永福县| 岚皋县| 鹿泉市| 五台县| 瓦房店市| 孙吴县| 深圳市| 隆昌县| 安西县| 三河市| 岱山县| 石泉县| 贡觉县| 南通市| 安阳市| 阿城市| 肥西县| 合江县| 龙江县| 阳朔县| 区。| 昌邑市| 淮阳县| 建始县|