2016-04-19 21 views
1

Ich musste mein Spiel aus verschiedenen Gründen von Cocos2dX nach Unity portieren. Ich habe jetzt das Projekt erfolgreich portiert, aber um es zu starten, muss ich einen Mechanismus machen, um alte Benutzerdaten zu erhalten und in einer neuen Struktur zu speichern, wie Anzahl der gesperrten Ebenen, hohe Punktzahl der Benutzer usw. Während der Suche kam ich dazu COCOS2dX gespeicherten Daten auf dem Gerät des Benutzers auf dem Pfad folgtGemeinsame Einstellungen beim Migrieren von Cocos2dX zu Unity Android erhalten

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

gibt es trotzdem Daten zu erhalten, von oben genanntem Weg? Der obige Pfad sollte für die App selbst zugänglich sein. Ich kann diese Datei nicht lesen. Ich erhalte folgenden Fehler.

ENOENT No Such file or Directory 

Die Datei ist dort kann ich das auf verwurzeltes Gerät über Root-Browser sehen, aber ich bekomme die Fehlermeldung, wenn ich die App auf demselben Gerät laufen. Alles, was ich brauche, ist den programmatischen Zugriff auf die Datei und später werde ich es analysieren und es für zukünftige Verwendung über Unity speichern.

Wir freuen uns auf eine positive und schnelle Antwort.

+0

hey in Unity können Sie Online-Inhalte zugreifen sowie lokale Speicher über WWW-Klasse (siehe die Dokumentation) String zurück. Der wichtigste Punkt bei einer lokalen Datenanforderung ist das Protokoll "file: ///" (mit 3 Schrägstrichen). Versuchen Sie also, ein neues WWW zu erstellen ("file: ///system/data/data/mygamepackage/shared_prefs/Cocos2dxPrefsFile.xml"); Laden Sie es und sehen Sie, ob Sie irgendwelche Ergebnisse erhalten, die Daumen drücken –

+0

oder Sie können stattdessen diese URI verwenden: Application.dataPath + "/Cocos2dxPrefsFile.xml" (nicht sicher, aber) –

Antwort

0

Ich weiß nicht, warum ich die Datei über Unity Engine nicht abrufen kann, ich musste ein eigenes Plugin schreiben, Java und das in Unity Project verwenden und das hat irgendwie funktioniert.

Es folgt der Code, der die Datei nach dem Lesen auf beiden wurzelt und nicht verwurzelt Geräte

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(); 
} 
Verwandte Themen