Wie kann ich meine Unity App im Hintergrund laufen lassen?
Wie kann ich meine Unity App im Hintergrund laufen lassen? Also so das wenn man am Hand in eine andere App geht, aber man das Fenster der App noch offen hat meine App weiter läuft.
1 Antwort
Hi,
geh dazu unter Edit -> Project Settings. In dem Fenter suchst Du auf der linken Seite nach "Player". Dann auf der rechten Seite nach "Resolution and Presentation". Dort findest Du dann eine Option "Run in Background", die schaltest Du ein.
https://docs.unity3d.com/Manual/class-PlayerSettingsStandalone.html#Resolution

Bei mobile geht sowas nicht, da die Geräte sowas bzgl. Energiesparen nicht erlauben.
Dort musst Du es anders machen: Du kannst via OnApplicationPause (Unity - Scripting API: MonoBehaviour.OnApplicationPause(bool) (unity3d.com) mitbekommen, wann die App in den Hintergrund gelegt wird. Diesen Zeitpunkt merkst Du Dir. Wenn die App wieder geöffnet wird, dann bekommst Du das via Unity - Scripting API: MonoBehaviour.OnApplicationFocus(bool) (unity3d.com) mit. Jetzt nimmst Du die aktuelle Zeit und ziehst den Zeitpunkt von OnApplicationPause ab. Damit erhältst Du die Differenz, wie lange die App im Hintergrund war und kannst jetzt Dein Spiel mit der Zeitdifferenz neu berechnen.
Ok danke! Aber ich glaube du hast das falsch verstanden. Ich würde gerne dass die app läuft wären eine andere geöffnet ist. Und nicht wenn das Handy auf Standby ist.
Das spielt keine Rolle. In dem Moment, wo Deine App nicht mehr aktiv die ist, die Du siehst, wird sie automatisch vom Betriebssystem angehalten zum Energiesparen. Es gibt eine Möglichkeit, ein bisschen was zu tun im Hintergrund, siehe Guide to background work | Android Developers und für Unity dann hier nintendaii/unity-background-service: A simple project that shows how to create an Android service for Unity application working on background (github.com).
Ich würde aber empfehlen, weitestgehend nichts im Hintergrund zu machen oder es eben anderweitig zu berechnen. Apps, die viel im Hintergrund machen können jederzeit vom System beendet werden, um Ressourcen zu sparen.
Weist du zufällig auch wie das bei Androide geht?