我一直试图让这个工作在最后几个小时里工作,这让我疯了。
我有一个设置方法来保存数据,这可以在PC上完美运行,但是,在Android上它不会写入文件。这是我的代码:
public void Save()
{
string data = buildJson();
File.WriteAllText(Application.persistentDataPath + "/playerSave.json", data);
Debug.Log("File Saved: " + Application.persistentDataPath + "/playerSave.json");
}
不确定为什么它不起作用。从我可以告诉读取其他线程,使用Application.persistantDataPath是正确的事情。
任何帮助?
答案 0 :(得分:0)
在android上File.WriteAllText(Application.persistentDataPath +" /playerSave.json",数据)会在你的 sd卡上写入数据你需要添加权限 android清单文件中的.permission.WRITE_EXTERNAL_STORAGE 。由unity创建的默认清单文件不会添加此权限。
答案 1 :(得分:0)
如果WriteAllText失败,则会抛出异常。为什么不尝试捕获异常并检查错误是什么?
答案 2 :(得分:0)
解决。
我的问题是该方法甚至没有被正确调用。
我创建了一个单独的游戏对象,其中包含我的保存方法的脚本,但我没有使用引用来保存它,这意味着它只有在我在同一场景中调用save方法时才有效gameobject已创建。 (当我在Unity编辑器中跳过我的菜单场景时就是这种情况,但是当我在应用程序中测试它时却不是这样)