From f4a702e212d1853735f8dae399da69d23bfa510e Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 26 三月 2026 18:16:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into h5version

---
 Main/System/Battle/Sound/BattleSoundManager.cs |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/Main/System/Battle/Sound/BattleSoundManager.cs b/Main/System/Battle/Sound/BattleSoundManager.cs
index 597ffa2..f0008fc 100644
--- a/Main/System/Battle/Sound/BattleSoundManager.cs
+++ b/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
         // 鍙栨秷璁㈤槄缂栬緫鍣ㄦ殏鍋滀簨浠�

--
Gitblit v1.8.0