using UnityEngine;
using UnityEditor;
using System.Xml;
using System.Collections;
using System;
using System.IO;
using System.Xml.Serialization;
public class ShuJvCunChu : MonoBehaviour {
void Start () {
//-------------------PlayerPrefs------------------
//刪除所有數據
PlayerPrefs.DeleteAll();
PlayerPrefs.DeleteKey("鍵");
//查詢是否有該key
PlayerPrefs.HasKey("關卡");
//設置數據
PlayerPrefs.SetInt("關卡", 10);
PlayerPrefs.SetFloat("血量", 10.2f);
PlayerPrefs.SetString("揹包", "血藥*10");
//獲取數據
PlayerPrefs.GetFloat("血量");
PlayerPrefs.GetInt("關卡");
PlayerPrefs.GetString("揹包");
//----------XML-----------------------------------------
////通過代碼創建xml文件
//SpritesCreateXml();
////Xml序列化
//XmlSerialization();
//Xml反序列化
XmlDeserializer();
////讀取Xml文件
//ReadXml();
//-------------Json----------------------------------------
//刷新資源
AssetDatabase.Refresh();
}
/// <summary>
/// 代碼創建Xml文件
/// </summary>
public void SpritesCreateXml()
{
//創建xml文件
XmlDocument xd = new XmlDocument();
//創建xml表頭
XmlNode xmldct = xd.CreateXmlDeclaration("1.0", "utf-8", null);
//把表頭添加到XML文件中
xd.AppendChild(xmldct);
//創建根元素
XmlElement root = xd.CreateElement("root");
//添加根元素
xd.AppendChild(root);
//判斷root是否有屬性
bool b= root.HasAttributes;
//判斷root是否有“h”節點
bool c = root.HasAttribute("h");
//創建XMl元素
XmlElement xe = xd.CreateElement("name");
//給元素賦值
xe.InnerText = "小李";
//添加到XML文件裏面
root.AppendChild(xe);
//創建屬性
XmlAttribute xa = xd.CreateAttribute("ID");
xa.Value = "01";
xe.Attributes.SetNamedItem(xa);
//添加元素
XmlElement age = xd.CreateElement("age");
age.InnerText=("18");
xe.AppendChild(age);
XmlElement site = xd.CreateElement("site");
site.InnerText = "北京";
xe.AppendChild(site );
//創建XMl元素
XmlElement xe_2 = xd.CreateElement("name");
//給元素賦值
xe_2.InnerText = "小張";
//添加到XML文件裏面
root.AppendChild(xe_2);
//創建屬性
XmlAttribute xa_2 = xd.CreateAttribute("ID");
xa_2.Value = "02";
xe_2.Attributes.SetNamedItem(xa_2);
//添加元素
XmlElement age_2 = xd.CreateElement("age");
age_2.InnerText = ("20");
xe_2.AppendChild(age_2);
XmlElement site_2 = xd.CreateElement("site");
site_2.InnerText = "山西";
xe_2.AppendChild(site_2);
//保存文件
xd.Save(Application.dataPath + "/原/ZongJei.xml");
}
/// <summary>
/// XML序列化
/// </summary>
private void XmlSerialization()//Serialization 序列化 XmlSerializer
{
U3DStudent student = new U3DStudent
{
name = "小哲",
site = "江蘇",
age = 20
};
//實例化寫入流並確定文件 引用命名空間System.IO
StreamWriter streamWriter = new StreamWriter(Application .dataPath+"/原/ZongJei_StreamWriter.xml");
//確定序列化內容
XmlSerializer xmlSerialize = new XmlSerializer (typeof(U3DStudent));
//寫入
xmlSerialize.Serialize(streamWriter, student);
//關閉流
streamWriter.Close();
}
/// <summary>
/// Xml反序列化
/// </summary>
private void XmlDeserializer()
{
//讀取文件
StringReader sr = new StringReader(Application.dataPath + "/原/ZongJei_StreamWriter.xml");
//給定類型
XmlSerializer xs = new XmlSerializer(typeof(U3DStudent));
//進行反序列化
U3DStudent u = xs.Deserialize(sr) as U3DStudent ;
//關閉流
sr.Close();
}
/// <summary>
/// 讀取xml文件
/// </summary>
private void ReadXml()
{
//實例化xml文件
XmlDocument xmldocument = new XmlDocument();
//加載xml文件
xmldocument.Load(Application.dataPath + "/原/ZongJei.xml");
//獲取根節點
XmlElement root = xmldocument.DocumentElement;
//獲取節點列表
XmlNodeList listNodes = root.SelectNodes("name");
for (int i = 0; i < listNodes.Count; i++)
{
//讀取內容
print(listNodes[i].SelectSingleNode("age").InnerText);
//讀取屬性
XmlElement xe = listNodes[i] as XmlElement;
print(xe.GetAttribute("ID"));
// 獲取所有的子節點 不包括節點內容
print(listNodes[i].ChildNodes);
//獲取節點的第一個子節點值
print(listNodes[i].FirstChild.InnerText);
//判斷該節點是否有子節點
print(listNodes[i].HasChildNodes);
//選擇匹配Xpath表達式的第一個XMLNode
print(listNodes[i].SelectSingleNode("age").InnerText);
}
//關閉流
xmldocument.Clone();
}
}
/// <summary>
/// U3d學生類
/// </summary>
public class U3DStudent
{
public string name;
public string site;
public int age;
}
Xml和PlayerPrefs簡單使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.