安装时将文件从Resources / StreamingAssets复制到Application.persistentDataPath

时间:2017-08-30 08:22:31

标签: c# android unity3d

我有txt个文件,其中包含我在游戏中的地图数据。问题是该文件存储在Application.persistentDataPath中,所以我甚至可以从我的Android设备(创建的地图创建者)更改它,那么如何在我的PC上创建包含基本地图的txt文件并将其显示在{{安装应用程序时在我的Android设备上1}}?

2 个答案:

答案 0 :(得分:6)

您可以将文件放在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作为路径阅读,然后将其复制到{{1} }。

从StreamingAssets加载

Application.persistentDataPath

然后将其保存到persistentDataPath:

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);
}

答案 1 :(得分:2)

您可以将此文件存储在Resources文件夹中,并在首次启动应用时将其复制到Application.persistentDataPath。或者在首次启动时从资源中读取文件,并在Application.persistentDataPath中创建具有相同内容的文件。