在将项目从Cocos2dX迁移到Unity Android时获取共享首选项

时间:2016-04-19 14:50:08

标签: android unity3d sharedpreferences cocos2d-x porting

出于各种原因,我不得不将我的游戏从Cocos2dX移植到Unity。 我现在已经成功移植了项目但是要启动它我必须建立一个机制来获取旧的用户数据并将其存储在新的结构中,例如锁定的级别数,用户的高分等。 在搜索时我发现COCOS2dX在用户的设备上存储了以下路径上的数据

system/data/data/mygamepackage/shared_prefs/Cocos2dxPrefsFile.xml

无论如何从上述路径获取数据? 应用程序可以自己访问上述路径。 我无法读取该文件后出现错误。

ENOENT No Such file or Directory

文件在那里我可以通过Root Browser在root设备上看到,但是当我在同一设备上运行应用程序时出现错误。 我只需要以编程方式访问该文件,稍后我将解析它并将通过Unity存储它以备将来使用。

期待积极快速的回应。

1 个答案:

答案 0 :(得分:0)

我不知道为什么我无法通过Unity Engine获取文件,我不得不编写自定义插件是Java并在Unity Project中使用它,并且有些工作原理。

以下是在有根和无根设备上读取文件后返回字符串的代码

    public static String getCocos2DPrefsFile(String mPackageName)
{
    //Get the text file
            File file = new File("/data/data/"+mPackageName+"/shared_prefs/","Cocos2dxPrefsFile.xml");

            //Read text from file
            StringBuilder text = new StringBuilder();

            try {
                BufferedReader br = new BufferedReader(new FileReader(file));
                String line;

                while ((line = br.readLine()) != null) {
                    text.append(line);
                    text.append('\n');
                }
                br.close();
            }
            catch (IOException e) {
                //You'll need to add proper error handling here
                Log.d("Error", e.toString());
            }
            return text.toString();
}