我有txt
文件,其中包含游戏中我的 map 的数据。问题是该文件存储在Application.persistentDataPath
中,因此即使从我的android设备(创建的 map 创建者)也可以更改它,所以我如何将我在PC上创建的txt文件包含在基本 map 中,并使其在android设备上显示在persistentDataPath
中我要安装应用程序吗?
最佳答案
您可以将文件从Editor文件夹放入Resources文件夹,然后使用Resources API进行读取。
TextAsset txtAsset = (TextAsset)Resources.Load("textfile", typeof(TextAsset));
string tileFile = txtAsset.text;
您可以检查这是否是第一次使用this运行该应用程序。之后,您可以将加载的数据复制到
Application.persistentDataPath
目录。众所周知,Resources文件夹会增加加载时间。我建议您请勿使用它,但这是一个值得了解的选项。
将文件放在StreamingAssets文件夹中,然后使用
WWW
或UnityWebRequest
API和Application.streamingAssetsPath
作为路径读取文件,然后将其复制到Application.persistentDataPath
。从StreamingAssets加载:
IEnumerator ReadFromStreamingAssets()
{
string filePath = System.IO.Path.Combine(Application.streamingAssetsPath, "MyFile");
string result = "";
if (filePath.Contains("://") || filePath.Contains(":///"))
{
UnityEngine.Networking.UnityWebRequest www = UnityEngine.Networking.UnityWebRequest.Get(filePath);
yield return www.SendWebRequest();
result = www.downloadHandler.text;
}
else
result = System.IO.File.ReadAllText(filePath);
}
然后将其保存到persistentDataPath:
File.WriteAllText(Application.persistentDataPath + "data/MyFile.txt", result);