C# json加载在构建中不起作用,但在unity编辑器中起作用
当我在Android上构建时,我的json文件似乎没有加载,因为我看不到数据。在unity编辑器中,它工作得很好。我正在为一些在PC上工作但在安卓上不工作的东西而挣扎。我想这只是一个路径差异,但对初学者来说并不容易 下面是我的代码TRY 1: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
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);