Actualmente estoy desarrollando un proyecto de Unity (este es el primero, no estoy familiarizado con Unity) y lo que me molesta es que los puntos de interrupción siguen llegando cuando minimizo la ventana del editor de Unity aunque tengo Application.runInBackground == false , por lo que el La aplicación debe suspenderse mientras está en segundo plano, ¡pero no es así! Solo la interfaz de usuario se congela y la música se detiene mientras el código real continúa ejecutándose. Entonces, básicamente me pregunto si este es un comportamiento general o esto solo sucede cuando se está ejecutando en el editor para permitir la depuración y en las versiones de lanzamiento se detiene la ejecución del código.
Tuve problemas similares. Descubrí que es porque tengo un IDE adjunto a Unity y solo entonces sucedió esto. Cuando cambia al modo de lanzamiento, todo funciona como se supone que debe hacerlo: modo de depuración en Unity .
¿Intentaste cambiarlo en el editor? vaya a Editar -> Configuración del proyecto -> Reproductor. El panel del inspector ahora cambiará para mostrar la configuración del reproductor. Busque la opción que dice "Ejecutar en segundo plano" y desmárquela. Por lo que entiendo, Application.runInBackground == false más lo pausa que detiene la ejecución del script. Si su proyecto es para dispositivos móviles (o tal vez solo agregue esto de todos modos, podría ayudar), intente:
RuninBackgorund se ignora para Android e IOS como se puede ver aquí
La única forma eficiente de ejecutar en segundo plano en Android es a través de un Servicio. Puede usar el método OnApplicationPause para recibir una notificación cuando el juego se detiene o reanuda.
public void OnApplicationPause(bool paused) { if(paused) { // Game is paused, stop service notifications. } else { // Game is unpaused, start service to get notifications }Aquí tienes un buen tutorial sobre la comunicación entre Android y Unity.