2016-08-01 7 views
0

Auf einer auf iOS und/oder Android bereitgestellten Unity3D-basierten App, welche Informationen stehen der App zur Verfügung, wenn sie fortgesetzt wird, nachdem der Benutzer sie angehalten hat? Geht es weiter von dort, wo es aufgehört hat oder startet die App von Anfang an?Hat Unity3D einen App-Status auf iOS und Android?

Wenn die App von Anfang an startet, kann ich irgendetwas nutzen, um ihren Status wiederherzustellen, oder muss ich manuell ein Memento (Muster) implementieren? Gibt es Unity3D-Ereignisse, die ich abonnieren kann, um eine App vorzubereiten, die gesperrt wird?

Antwort

0

Sobald Sie Play gedrückt haben, haben Sie keine Kontrolle über seine Bauzustände.

Unity kann es intern verwendet beim Bau, aber es scheint wieder durch alle Staaten zu gehen, wenn wieder aufzubauen wie Kompilieren Skripte, Shader-Material, baut Versionierung, Zertifikat Authentifizieren baut Standort usw.

Diese sind nicht gültig, wenn Sie Haben Sie Unity-Source und modifizierte Build-Pipeline in Ihrer Hand. Sie können dort ein Memento implementieren, um zu prüfen, was sich geändert hat oder nicht, und die Zustände zu ignorieren, die sich nicht geändert haben.

Diese haben nichts mit Spielecode oder Ereignissen zu tun.

+0

Also, wenn ich Sie richtig verstehe, startet Unity im Wesentlichen die App von Anfang an unabhängig von einem früheren "suspended" Zustand auf iOS oder Android? Genauso wie es von vorne anfangen würde, wenn Sie die App unter Windows oder OSX schließen? – Elenesski

+0

Es beginnt bei Null. Unter Windows, OSX, iOS-Build ersetzt es die vorhandenen Dateien, wenn das Verzeichnis unverändert bleibt und temporäre Dateien (alle + Android) in Unity für dieselbe Build-ID ersetzt werden. –

0

Solange die App im Speicher bleibt, wird sie nach dem Aussetzen fortgesetzt.

Sie können die OnApplicationPause (bool) verwenden, um zu fangen, wenn die Anwendung an den Hintergrund gesendet wird und dort einige Serialisierung durchführen. Wenn die App dann aus dem Speicher entfernt wird (weil der Benutzer sie geschlossen hat oder das System nicht mehr genügend Arbeitsspeicher hat), können Sie den vorherigen Status aus diesen Daten erneut laden, wenn die App neu gestartet wird.