아카이브 및 읽기
24910 단어 플레이
//
[System.Serializable]
public class Save
{
public List<int> livingTargetPositions = new List<int>();
public List<int> livingMonsterTypes = new List<int>();
public int shootNum = 0;
public int score = 0;
}
//
//
BinaryFormatter bf = new BinaryFormatter();
//
FileStream fileStream = File.Create(Application.dataPath + "/StreamingFile" + "/byBin.txt");
// Save , :
bf.Serialize(fileStream, save);
//
fileStream.Close();
// ,
if (File.Exists(Application.dataPath + "/StreamingFile" + "/byBin.txt"))
{
print(" ");
}
//
BinaryFormatter bf = new BinaryFormatter();
//
FileStream fileStream = File.Open(Application.dataPath + "/StreamingFile" + "/byBin.txt", FileMode.Open);
// , Save
Save save= (Data)bf.Deserialize(fileStream);
//
fileStream.Close();
using LitJson;
//Json
//
string filePath = Application.dataPath + "/StreamingFile" + "/byJson.json";
// JsonMapper save Json
string saveJsonStr = JsonMapper.ToJson(save);
//
// StreamWriter,
StreamWriter sw = new StreamWriter(filePath);
sw.Write(saveJsonStr);
// StreamWriter
sw.Close();
print(" ");
//
// StreamReader,
string filePath = Application.dataPath + "/StreamingFile" + "/byJson.json";
StreamReader sr = new StreamReader(filePath);
// jsonStr
string jsonStr = sr.ReadToEnd();
//
sr.Close();
// jsonStr Save
Save save = JsonMapper.ToObject<Save>(jsonStr);
using System.Xml;
//Xml
//
string filePath = Application.dataPath + "/StreamingFile" + "/byXML.txt";
// XML
XmlDocument xmlDoc = new XmlDocument();
// ,
XmlElement root = xmlDoc.CreateElement("save");
//
root.SetAttribute("name", "saveFile1");
// XmlElement
XmlElement target;
XmlElement targetPosition;
XmlElement monsterType;
// save , XML
for(int i = 0; i < save.livingTargetPositions.Count; i++)
{
target = xmlDoc.CreateElement("target");
targetPosition = xmlDoc.CreateElement("targetPosition");
// InnerText
targetPosition.InnerText = save.livingTargetPositions[i].ToString();
monsterType = xmlDoc.CreateElement("monsterType");
monsterType.InnerText = save.livingMonsterTypes[i].ToString();
// root -- target -- (targetPosition, monsterType)
target.AppendChild(targetPosition);
target.AppendChild(monsterType);
root.AppendChild(target);
}
// xmlDoc -- root --(target-- (targetPosition, monsterType), shootNum, score)
XmlElement shootNum = xmlDoc.CreateElement("shootNum");
shootNum.InnerText = save.shootNum.ToString();
root.AppendChild(shootNum);
XmlElement score = xmlDoc.CreateElement("score");
score.InnerText = save.score.ToString();
root.AppendChild(score);
xmlDoc.AppendChild(root);
xmlDoc.Save(filePath);
//
string filePath = Application.dataPath + "/StreamingFile" + "/byXML.txt";
Save save = new Save();
// XML
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(filePath);
// , XmlNodeList
XmlNodeList targets = xmlDoc.GetElementsByTagName("target");
// target , InnerText
if(targets.Count != 0)
{
foreach(XmlNode target in targets)
{
XmlNode targetPosition = target.ChildNodes[0];
int targetPositionIndex = int.Parse(targetPosition.InnerText);
// save
save.livingTargetPositions.Add(targetPositionIndex);
XmlNode monsterType = target.ChildNodes[1];
int monsterTypeIndex = int.Parse(monsterType.InnerText);
save.livingMonsterTypes.Add(monsterTypeIndex);
}
}
//
XmlNodeList shootNum = xmlDoc.GetElementsByTagName("shootNum");
int shootNumCount = int.Parse(shootNum[0].InnerText);
save.shootNum = shootNumCount;
XmlNodeList score = xmlDoc.GetElementsByTagName("score");
int scoreCount = int.Parse(score[0].InnerText);
save.score = scoreCount;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SpriteKit은 게임 점프 캐릭터에 높이 표시기를 추가합니다이것은 점프 낙서와 유사한 작은 게임이다. 주인공이 끊임없이 에너지 공을 먹고 점프 에너지를 얻어 더 높은 곳으로 점프한다. 그림에서 블랙홀에 부딪히면 걸린다. 게임 디버깅 과정에서 주인공의 높이를 실시간으로 알았으...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.