Unity上的文件读/写范例 - 要使用哪些?

时间:2016-02-24 18:24:24

标签: c# file unity3d io

我想加载一些存储在我资产中的JSON文件。

我不知道我应该将它们存储在资产中的哪个位置。我应该将它存储在"资源"文件夹,在" StreamingAssets"文件夹或其他地方?

我不知道我应该使用什么样的路径。我听说你需要为StreamingAssets写path = "jar:file://" + Application.dataPath + "!/assets/";,但也有Application.streamingAssetsPath。我也听说你总是需要使用Application.persistantDataPath。那么我应该使用哪条路径?

我不知道我可以用什么来访问C#中的文件。我听说你可以使用Directory.Exists()和File.Exists()但是如果你使用StreamingAssets你必须使用WWW。是吗?

1 个答案:

答案 0 :(得分:1)

您可以在this answer中获得基本想法。

此外,我建议您在“资源”文件夹中放置要与游戏打包的任何内容,您可以使用Resources.Load()访问该文件夹。您可以根据需要迭代这些目录:Resources.Load("folder/file");

如果你想写文件,他们必须进入Application.persistentDataPath,因为这是唯一的可写目录(由Unity指定),即仅用于运行时文件。但是一旦文件存储在那里,它就会在会话之间保持不变。

当然,您可以指定绝对路径并尝试从那里加载资产,但这比必要的风险更大(不同设备上的路径不同)。 您可以完全忽略Application.dataPath,直到您找到它的特定需求(例如:访问不在persistentDataPath中但不在资源中的文件)。

我希望有所帮助!