国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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篇)的評論 (共 條)

分享到微博請遵守國家法律
屯留县| 新乡市| 镇沅| 历史| 九龙县| 南京市| 图木舒克市| 山东省| 贵州省| 舞钢市| 汤原县| 龙口市| 慈溪市| 商南县| 闽侯县| 陆良县| 策勒县| 望奎县| 彭阳县| SHOW| 屏东县| 颍上县| 锡林郭勒盟| 胶州市| 铁岭市| 长沙市| 巫溪县| 莫力| 康乐县| 满洲里市| 安仁县| 海伦市| 宁远县| 繁峙县| 波密县| 丰都县| 墨脱县| 丽水市| 鹤峰县| 来凤县| 修文县|