2014-02-18 12 views
6

Ich versuche, das Pausieren in Unity mithilfe der OnApplicationPause-Funktion zu implementieren.Fortsetzen der Anwendung unter Android mit Unity

Es scheint gut zu funktionieren, wenn ich mein Spiel (auf Android) durch Drücken der Home-Taste und dann durch die Liste der aktiven Apps zurück, aber wenn ich das Spiel-Symbol auf dem Startbildschirm drücken, starten Sie das Spiel statt mich zu bringen zurück.

Gibt es einen Weg um dies zu umgehen?

Antwort

0

Es sollte an dem Punkt fortgesetzt werden, an dem Sie zurück zum Spiel gehen. Wenn nicht, dann kann es sein, dass dein Spielfluss automatisch neu startet, wenn es von der Pause zurückkommt.

Versuchen Sie in Ihrem Spiel, den Status von OnApplicationPause zu überprüfen und von dort zu debuggen. Das Codebeispiel ist in diesem Thread http://answers.unity3d.com/questions/286939/detecting-when-applicationdidbecomeactive-in-unity.html

+0

Könnte das sein, weil ich 2 Szenen in meinem Projekt habe? – tvoloshyn

+0

Nein, das sollte kein Problem sein. Eine Möglichkeit ist, dass Ihre Anwendung beim Fortsetzen einen Fehler hat und deshalb neu gestartet wird. Vielleicht möchten Sie den Logcat wie in @Enzign Antwort überprüfen. –

0

In meiner Erfahrung diese seltsamen Dinge passiert, wenn Sie nicht die richtigen Informationen in Ihrer Datei AndroidManifest.xml haben. Insbesondere diese Zeile:

<activity android:name="your_name_here.Activity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="your_orientation_here_if_needed"> 

Stellen Sie sicher, die "android: configChanges" enthält alles, was hier drin. Andernfalls, um Ihnen spezifischere Informationen zu geben, müssen Sie einen Logcat angeben, wenn dies geschieht.

7

für mich war dies passiert, wenn ich eine: android.os.DeadObjectException in den Protokollen hatte. (Bedeutet, dass die Anwendung bereits gestorben ist).

Überprüfen Sie, ob Sie so etwas wie dies in Ihren Protokollen haben:

I/ActivityManager( 600): Restarting because process died: ActivityRecord{439f9588 u0 com.mycompany.myapp/com.unity3d.player.UnityPlayerProxyActivity} 
W/ActivityManager( 600): Exception when starting activity com.mycompany.myapp/com.unity3d.player.UnityPlayerProxyActivity 
W/ActivityManager( 600): android.os.DeadObjectException 
W/ActivityManager( 600): at android.os.BinderProxy.transact(Native Method) 
W/ActivityManager( 600): at android.app.ApplicationThreadProxy.scheduleLaunchActivity(ApplicationThreadNative.java:759) 
W/ActivityManager( 600): at com.android.server.am.ActivityStack.realStartActivityLocked(ActivityStack.java:1120) 
W/ActivityManager( 600): at com.android.server.am.ActivityStack.startSpecificActivityLocked(ActivityStack.java:1247) 

... und wenn ja weiter zurückblicken, auch in Ihren Protokollen, um zu sehen, warum Sie App im Sterben liegt. Für mich um die Anwendung zu verhindern, zu sterben Ich hatte die Absicht Filter zu bewegen:

 <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

von UnityPlayerProxyActivity zu UnityPlayerNativeActivity

+0

Das Verschieben dieses Intent-Filters funktionierte auch für mich! Ich habe keine Ahnung warum, aber das ist nebensächlich! –

+0

Vorsicht - das funktionierte für mich, aber das Verschieben des Intent-Filters hatte einige negative Auswirkungen. Bestehende Nutzer meines Spiels haben das Symbol verloren, wenn sie es an ihre Homepage gepinnt hatten, und manchmal (ich bin mir der Umstände nicht sicher) würde das Symbol komplett aus dem Startprogramm verschwinden. – tenpn

0

haben Sie den Start-Modus auf Android Manifest prüfen und den Wert wie diese Android machen: launchMode = "singleTask"

Verwandte Themen