我有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文件夹中,然后使用WWWUnityWebRequest 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);

10-07 19:35
查看更多