#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(); }