在Unity中重新加载XML资产

时间:2016-03-25 15:20:10

标签: xml unity3d unity5

我将游戏进度存储在XML文件中。 由于玩家可以选择他们想玩的回合,但一旦完成就不会重复回合。 正在编辑和更新文件,但是,在我重新开始游戏之前,更改并未反映在游戏中。

到目前为止我一直在使用AssetDatabase.ImportAsset(),但我需要一个替代Android导出。

1 个答案:

答案 0 :(得分:1)

好消息:在Unity中,保存/阅读文本文件非常容易。

关键点......

您必须使用Application.persistentDataPath (所有平台,所有时间 - 没有例外)。 “就这么简单!”

(A)完全没有理由使用任何其他文件夹或路径。

(B)的确,您只需使用任何其他文件夹或路径。

在Unity中编写和读取文件很容易。

using System.IO;
// IO crib sheet..
//
// get the file path:
// f = Application.persistentDataPath+"/"+fileName;
//
// check if file exists:         System.IO.File.Exists(f)
// write to file:                File.WriteAllText(f,t)
// delete the file if needed:    File.Delete(f)
// read from a file:             File.ReadAllText(f)

这就是它的全部内容。

string currentText = File.ReadAllText(filePath);

关于这里的问题,“我应该在第一次运行时手动添加它们”

这很简单......

public string GetThatXMLStuff()
 {
 f = Application.persistentDataPath+"/"+"defaults.txt";

 // check if it already exists:

 if ( ! System.IO.File.Exists(f) )
   {
   // First run. Put in the default file
   string default = "First line of file.\n\n";
   File.WriteAllText(f, default);
   }

 // You know it exists no matter what. Just get the text:
 return File.ReadAllText(f);
 }

这真的很简单 - 没什么可说的。