Unity Antworten - Wie XMLSerializer und Filestream auf Android (C #) zu verwenden,

Ok, also von Ihrem Link sieht es aus wie Application.streamingAssetsPath wird den Pfad zu dem Ordner StreamingAssets zurück, die im Assets-Verzeichnis ist. Aber da dieses Verzeichnis in einer JAR-Datei befindet, müssen Sie entpacken oder Unity WWW zu verwenden, um Zugang zu erhalten. Wie kann ich WWW verwenden, um einen Weg zu bekommen, die ich dann Filestream verwenden kann von lesen? Wieder einmal, wenn ich das Spiel im Editor laufen ist es in der Lage den Weg zu finden, die meine Ressourcen Punkte, aber nicht, wenn ich baue es für Android. Der entsprechende Code ich verwende ist die folgende:







Das Ausführen des Spiels im Editor liest den Pfad von „www.url“, die auf die XML-Datei verweist, die Pfade zu Assets in der „Ressourcen“ Verzeichnis enthält. Android ist nach wie vor nicht in der Lage, diese Datei zu lesen. Gibt es Arbeitsbeispiele von etwas Ähnliches wie das?

Ich schaffte es mein Spiel arbeitet an Android zu erhalten, die StreamingAssets mit Hinweis, dass robertbu vorgesehen (danke), obwohl es an der Arbeit ein bisschen mehr beteiligt und Hacky war, als ich es sein möchte.







Ich hatte im Grunde das WWW api zu verwenden, um die Datei von meinem Vermögen / StreamingAssets Ordnern in einem Coroutine zu beginnen Herunterladen, warten, bis die Datei heruntergeladen zu beenden, dann zum Application.persistentDataPath Verzeichnis der heruntergeladenen Datei kopieren. Ich war dann in der Lage die kopierte Datei mit Filestream und verwenden XMLSerializer auf ihn zu lesen. Ich hasse, wie ich eine Datei bereits auf dem Spielfeld, um von ihm zu lesen, enthielt zum Download, aber ich denke, das ist nur, wie es ist.

Hier ist der relevante Code für diejenigen, die daran interessiert sind:

Jetzt kann ich meine 50 Tabs schließen Ich habe offen darüber. Oder wenn jemand eine bessere Antwort hat würde Ich mag es zu sehen.

Ich bin damit einverstanden, dass scheint wirklich Hacky. Wenn Sie diesen Weg zu gehen, dann wäre es einfacher, die Datei als TextAsset aufzunehmen. Dann würden Sie die WWW Ladelogik nicht benötigen. Darüber hinaus glaube ich, auf iOS richte ich meine XCode-Projekt, so dass Dateien enthalten sind, und sind bei Application.persistentDataPath. Ich weiß nicht, ob etwas Ähnliches auf Android vorhanden ist, oder welche Art von Format der Datei müßte in seine gelesen werden.

Nizza, wurde für 2 Tage in diesem stecken, bis ich diese gefunden. Sie sollten mehr Tags auf diese Frage hinzufügen, da es ziemlich schwierig war, diese zu finden, obwohl es eine große Antwort gibt, was ich denke, ist ein häufiges Problem wäre!







In Verbindung stehende Artikel