2016-04-27 5 views
0

ich entwickle ein mehrsprachiges spiel mit unity engine, ich habe xml-dateien für jede sprache geschrieben aber android apk scheint nicht zu lesen die xml-dateien wo Der PC-Plattform-Build funktioniert gut mit allen Sprachen.android apk nicht lesen xml-datei (apk build von einheit editor)

Hier ist mein Code:

void Awake() 
{ 
    languagePath = Application.dataPath + "/Languages/"; 
    CollectLanguages(); 
} 

private void CollectLanguages() 
{ 
    try 
    { 
     DirectoryInfo langDir = new DirectoryInfo(languagePath); 
     FileInfo[] files = langDir.GetFiles("*.xml"); 
     languageFiles = new string[files.Length]; 
     int i = 0; 
     foreach (FileInfo fileGo in files) 
     { 
      languageFiles[i] = fileGo.FullName; 
      i++; 
     } 
    } 
    catch (System.Exception e) 
    { 
     Debug.Log(e.Message); 
    } 
} 

private string GetLanguageFile(string language) 
{ 
    foreach (string langGo in languageFiles) 
    { 
     if (langGo.EndsWith(language + ".xml")) 
     { 
      return langGo; 
     } 
    } 
    return string.Empty; 
} 

public void LoadLanguage(string language) 
{ 
    try 
    { 

     string filepath = Application.persistentDataPath + "/" + language+".xml"; 
     if (Application.platform == RuntimePlatform.Android) 
     { 
      WWW path = new WWW("jar:file://" + Application.dataPath + "!/assets/"+"Languages/"+language+".xml"); 
      while(!path.isDone) 
      { 
       Debug.Log("Loading File"); 
      } 
      File.WriteAllBytes(filepath, path.bytes); 
     } 
     mainDoc = new XmlDocument(); 
     StreamReader streamReader = new StreamReader (filepath); 
     mainDoc.Load(streamReader); 
     root = mainDoc.DocumentElement; 
     streamReader.Close(); 

    } 
    catch (System.Exception e) 
    { 
     Debug.Log(e.Message); 
    } 
} 

Antwort

0

die Lese ändern und schreiben Verzeichnis
Application.streamingAssetsPath

in Assets einen neuen Ordner hinzufügen und auf StreamingAssets jede Datei unter den StreamingAssets nennen kann ändern, lesen, schreiben in allen Plattformen

+0

versucht, kein Glück ... –