Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android amingDataPath并从request.downloadHandler.data获取数据_Android_Database_Unity3d - Fatal编程技术网

Android amingDataPath并从request.downloadHandler.data获取数据

Android amingDataPath并从request.downloadHandler.data获取数据,android,database,unity3d,Android,Database,Unity3d,要保存新数据,必须使用Application.persistantDataPath,此时使用System.IO.File就可以了 下面是一个从APK中获取数据的示例/资产/文件夹(android将StreamingAssets文件夹放在其中),然后将其保存到某个位置供以后使用 public IEnumerator GetSomeDataAndThenSave(string path) { UnityWebRequest request = UnityWebRequest.Get(path

要保存新数据,必须使用Application.persistantDataPath,此时使用System.IO.File就可以了

下面是一个从APK中获取数据的示例/资产/文件夹(android将StreamingAssets文件夹放在其中),然后将其保存到某个位置供以后使用

public IEnumerator GetSomeDataAndThenSave(string path)
{
    UnityWebRequest request = UnityWebRequest.Get(path);

    request.Send();

    while(!request.isDone)
    {
        yield return null;
    }

    if (!request.isNetworkError && (request.responseCode == 0 || request.responseCode == (long)System.Net.HttpStatusCode.OK))
    {
        WrapperClass yourClassList = new WrapperClass();
        YourClassList.members = JsonUtility.FromJson<YourClass>(request.downloadHandler.text);

        var bytes = System.Text.Encoding.UTF8.GetBytes(JsonUtility.ToJson(instance));
        File.WriteAllBytes(Application.persistentDataPath + "/SubDirectory/" + Path.GetFileName(path), bytes);
    }

    request.Dispose();
}
public IEnumerator GetSomeDataAndEntSave(字符串路径)
{
UnityWebRequest=UnityWebRequest.Get(路径);
request.Send();
而(!request.isDone)
{
收益返回空;
}
如果(!request.isNetworkError&(request.responseCode==0 | | request.responseCode==(long)System.Net.HttpStatusCode.OK))
{
WrapperClass yourClassList=新建WrapperClass();
YourClassList.members=JsonUtility.FromJson(request.downloadHandler.text);
var bytes=System.Text.Encoding.UTF8.GetBytes(JsonUtility.ToJson(实例));
File.writealBytes(Application.persistentDataPath+“/子目录/”+路径.GetFileName(路径),字节);
}
request.Dispose();
}

希望这能为其他有同样问题的人澄清问题。

我将从SQL数据库开始……请您详细说明,如何解决@ŁukaszMotyczkaHi,这只是一个想法,我没有进一步研究它,但我记得我有一个工作的SQLite数据库,我用playerprefs替换了它(我不需要存储太多数据)。请查看:或在asset Store中查找SQLiter,它是一种简单且免费的资产。在wiki页面中的SQLLite上有更多信息:。问题是代码是用javascript编写的,但只需稍加努力就可以很容易地将其翻译成C(或者您可能不需要)。无论如何,您可以找到数据库管理的工作类,其中包含如何使用的示例代码:)为了清楚起见,如果您的项目少于一百万个,则没有理由使用数据库。几千件东西根本算不了什么。您只需将其保存为任何类型的列表或字典,并用一行代码将其保存为文本文件@ŁukaszMotyczkaHi,这只是一个想法,我没有进一步研究它,但我记得我有一个工作的SQLite数据库,我用playerprefs替换了它(我不需要存储太多数据)。请查看:或在asset Store中查找SQLiter,它是一种简单且免费的资产。在wiki页面中的SQLLite上有更多信息:。问题是代码是用javascript编写的,但只需稍加努力就可以很容易地将其翻译成C(或者您可能不需要)。无论如何,您可以找到数据库管理的工作类,其中包含如何使用的示例代码:)为了清楚起见,如果您的项目少于一百万个,则没有理由使用数据库。几千件东西根本算不了什么。你只要把它作为任何一种列表或字典保存,然后用一行代码将它保存为文本文件。。使用文件存储大型数据的另一种简单方法。您将一组数据存储在文件中(例如:-文本文件)。在Unity中使用文件I/O写入数据很容易。@JoeBlow很抱歉没有响应。我离开了那个项目。是的,我读了你的问题。。使用文件存储大型数据的另一种简单方法。您将一组数据存储在文件中(例如:-文本文件)。在Unity中使用文件I/O写入数据很容易。@JoeBlow很抱歉没有响应。我离开了那个项目。这件事很紧急,没有时间做实验。嗨,西莫斯,这个问题的执行官(非常简单)只想写,然后读,一些数据。(仅供参考,评论中对此进行了大量讨论,现在已经没有了!)正如我在回答中所述,这只是一行代码。几乎每一个游戏都会这样做——这没什么,完全是微不足道的。这里的Seamus示例解释了如何从“随应用程序安装一起发送的软件包”中加载(我相信对某些读者非常有用)。Hi Seamus-关于这个问题的OP(非常简单)只想先写,然后读,一些数据。(仅供参考,评论中对此进行了大量讨论,现在已经没有了!)正如我在回答中所述,这只是一行代码。几乎每一个游戏都会这样做——这没什么,完全是微不足道的。Seamus在这里的例子解释了如何从“随应用程序安装一起发送的软件包”中加载(我相信对一些读者来说非常有用)。
   string currentText = File.ReadAllText(filePath);
// filePath = Application.persistentDataPath+"/"+fileName;
// YOU MUST USE "Application.persistentDataPath"
// YOU CANNOT USE ANYTHING ELSE/
// NOTHING OTHER THAN "Application.persistentDataPath" WORKS/
// ALL OTHER OPTIONS FAIL ON ALL PLATFORMS/
// YOU CAN >ONLY< USE Application.persistentDataPath IN UNITY.
public IEnumerator GetSomeDataAndThenSave(string path)
{
    UnityWebRequest request = UnityWebRequest.Get(path);

    request.Send();

    while(!request.isDone)
    {
        yield return null;
    }

    if (!request.isNetworkError && (request.responseCode == 0 || request.responseCode == (long)System.Net.HttpStatusCode.OK))
    {
        WrapperClass yourClassList = new WrapperClass();
        YourClassList.members = JsonUtility.FromJson<YourClass>(request.downloadHandler.text);

        var bytes = System.Text.Encoding.UTF8.GetBytes(JsonUtility.ToJson(instance));
        File.WriteAllBytes(Application.persistentDataPath + "/SubDirectory/" + Path.GetFileName(path), bytes);
    }

    request.Dispose();
}