最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

分享到微博請遵守國家法律
盖州市| 鹰潭市| 崇文区| 南华县| 昌乐县| 青川县| 唐河县| 淅川县| 德清县| 沅江市| 城固县| 格尔木市| 绍兴县| 衢州市| 高邮市| 黄浦区| 太原市| 怀柔区| 泸水县| 阳西县| 淮南市| 永嘉县| 深泽县| 汤原县| 白城市| 双鸭山市| 陕西省| 榆中县| 屯留县| 平武县| 利津县| 锦屏县| 穆棱市| 南皮县| 永川市| 柘城县| 扶余县| 于田县| 城步| 舞阳县| 合阳县|