Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.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
C# json加载在构建中不起作用,但在unity编辑器中起作用_C#_Android_Json_Unity3d - Fatal编程技术网

C# json加载在构建中不起作用,但在unity编辑器中起作用

C# json加载在构建中不起作用,但在unity编辑器中起作用,c#,android,json,unity3d,C#,Android,Json,Unity3d,当我在Android上构建时,我的json文件似乎没有加载,因为我看不到数据。在unity编辑器中,它工作得很好。我正在为一些在PC上工作但在安卓上不工作的东西而挣扎。我想这只是一个路径差异,但对初学者来说并不容易 下面是我的代码TRY 1: public static JsonData LoadFile(string path) { var fileContents = File.ReadAllText(path); var data = JsonMapper.ToObject

当我在Android上构建时,我的json文件似乎没有加载,因为我看不到数据。在unity编辑器中,它工作得很好。我正在为一些在PC上工作但在安卓上不工作的东西而挣扎。我想这只是一个路径差异,但对初学者来说并不容易

下面是我的代码TRY 1:

public static JsonData LoadFile(string path)
{
    var fileContents = File.ReadAllText(path);
    var data = JsonMapper.ToObject(fileContents);
    return data;
}

public void QuestionLoader()
{
    // Load the Json file and store its contents in a 'JsonData' variable
    var data = LoadFile(Application.dataPath + "/Resources/json/level1.json");
这是我的try 2,基于Unity手册:


如果要从任何平台加载项目中已经存在的json,有两个选项:

1。将Json文件放在Resources文件夹中,然后使用
Resources.Load
将其作为文件读取。例如,请参见答案的结尾

2。将json文件设为资产绑定,然后使用
WWW.LoadFromCacheOrDownload
加载它



所有这些都应该有效。阅读json文件后,您可以直接将其复制到
应用程序.persistentDataPath
,这样您就可以修改它并在需要时保存它。

Nice-谢谢您的帮助
   public static JsonData LoadFile(string path)
{

    var www = new WWW(path);
    return www.text;

    //var fileContents = File.ReadAllText(path);
   // var data = JsonMapper.ToObject(fileContents);
   // return data;
}

public void QuestionLoader()
{
    string path = "";
    // Load the Json file and store its contents 
    #if UNITY_ANDROID

    path = "jar:file://" + Application.dataPath + "!/assets/Levels/level1.json";

    #endif

    #if UNITY_EDITOR

    path = Application.dataPath + "/StreamingAssets/Levels/level1.json";

    #endif
    //
    var data = LoadFile(path);