Игровая музыка продолжает играть в фоновом режиме

#unity3d

#unity3d

Вопрос:

В настоящее время я работаю над мобильной игрой на основе уровней.

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я сворачиваю игру, музыка продолжает играть в фоновом режиме. И самое странное, что это происходит только на ограниченном количестве устройств Android.

Не стесняйтесь оставлять свои предложения о том, как обойти это.

Я прикрепляю свой код скрипта-менеджера аудио ниже, но не уверен, что у нас там проблема.

 public class AudioManager : MonoBehaviour {  public static AudioManager Instance;  private SoundyManager soundyManager;  private AudioSource backGroundSound;  private void Start()  {  Instance = this;  soundyManager = FindObjectOfTypelt;SoundyManagergt;(true);  backGroundSound = BackgroundAudioController.Instance.GetComponentlt;AudioSourcegt;();  if (!PlayerPrefs.HasKey(PlayerPrefsManager.SoundAudioPref))  {  PlayerPrefs.SetString(PlayerPrefsManager.SoundAudioPref, "ON");  }  if (!PlayerPrefs.HasKey(PlayerPrefsManager.BackgroundMusicPref))  {  PlayerPrefs.SetString(PlayerPrefsManager.BackgroundMusicPref, "ON");  }    if (PlayerPrefs.GetString(PlayerPrefsManager.SoundAudioPref) == "OFF")  {  // SoundyManager.MuteAllSounds();  soundyManager.gameObject.SetActive(false);  }    if (PlayerPrefs.GetString(PlayerPrefsManager.BackgroundMusicPref) == "OFF")  {  // SoundyManager.MuteAllSounds();  backGroundSound.Stop();  // soundyManager.gameObject.SetActive(false);  }    }   public void MuteAllSounds()  {  // SoundyManager.MuteAllSounds();  soundyManager.gameObject.SetActive(false);  PlayerPrefs.SetString(PlayerPrefsManager.SoundAudioPref, "OFF");  }   public void UnMuteAllSounds()  {  soundyManager.gameObject.SetActive(true);  // SoundyManager.UnmuteAllSounds();  // SoundyController.UnmuteAll();  PlayerPrefs.SetString(PlayerPrefsManager.SoundAudioPref, "ON");  }   public void MuteBackgroundSound()  {  backGroundSound.Stop();  PlayerPrefs.SetString(PlayerPrefsManager.BackgroundMusicPref, "OFF");  }    public void UnMuteBackgroundSound()  {  backGroundSound.Play();  PlayerPrefs.SetString(PlayerPrefsManager.BackgroundMusicPref, "ON");  } }  

Ответ №1:

Лучший способ решить эту проблему-использовать Application.isFocused . Используйте это в одном из обновлений вашего сценария, предпочтительно в LateUpdate()

 if(!Application.isFocused) { audioSource.stop(); }