yyl
2026-03-26 f4a702e212d1853735f8dae399da69d23bfa510e
Main/System/Battle/Sound/BattleSoundManager.cs
@@ -54,6 +54,12 @@
        UnityEditor.EditorApplication.pauseStateChanged += OnEditorPauseStateChanged;
#endif
    }
    public void Init()
    {
        EventBroadcast.Instance.AddListener<bool>(EventName.SOUND_EFFECT_MUTE_CHANGE, OnSoundEffectMuteChange);
        EventBroadcast.Instance.AddListener<float>(EventName.SOUND_EFFECT_VOLUME_CHANGE, OnSoundEffectVolumeChange);
    }
    
#if UNITY_EDITOR
    /// <summary>
@@ -357,6 +363,34 @@
        }
    }
    
    private void OnSoundEffectMuteChange(bool isMute)
    {
        // Debug.Log($"<color=magenta>BattleSoundManager [{battleField.guid}]: OnSoundEffectMuteChange({isMute}) - 当前活跃音效数={activeAudioSources.Count}</color>");
        // 更新所有正在播放的音效的静音状态
        foreach (var source in activeAudioSources)
        {
            if (source != null)
            {
                source.mute = isMute;
            }
        }
    }
    private void OnSoundEffectVolumeChange(float volume)
    {
        // Debug.Log($"<color=magenta>BattleSoundManager [{battleField.guid}]: OnSoundEffectVolumeChange({volume}) - 当前活跃音效数={activeAudioSources.Count}</color>");
        // 更新所有正在播放的音效的音量
        foreach (var source in activeAudioSources)
        {
            if (source != null)
            {
                source.volume = volume;
            }
        }
    }
    /// <summary>
    /// 焦点变化回调
    /// </summary>
@@ -457,6 +491,9 @@
            battleField.OnSpeedRatioChange -= OnSpeedRatioChanged;
            battleField.OnFocusChange -= OnFocusChanged;
        }
        EventBroadcast.Instance.RemoveListener<bool>(EventName.SOUND_EFFECT_MUTE_CHANGE, OnSoundEffectMuteChange);
        EventBroadcast.Instance.RemoveListener<float>(EventName.SOUND_EFFECT_VOLUME_CHANGE, OnSoundEffectVolumeChange);
        
#if UNITY_EDITOR
        // 取消订阅编辑器暂停事件