From 00bf2f3db6bb031a21fe0463b0a72b43377233bd Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 13 三月 2026 11:38:47 +0800
Subject: [PATCH] 111 音效问题

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

diff --git a/Main/System/Battle/Sound/BattleSoundManager.cs b/Main/System/Battle/Sound/BattleSoundManager.cs
index 33f3439..3d80805 100644
--- a/Main/System/Battle/Sound/BattleSoundManager.cs
+++ b/Main/System/Battle/Sound/BattleSoundManager.cs
@@ -53,6 +53,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>
@@ -166,6 +172,7 @@
         
         // 璁剧疆闊抽噺锛堜娇鐢ㄩ煶鏁堥煶閲忚缃級
         source.volume = SystemSetting.Instance.GetSoundEffect();
+        source.mute = SystemSetting.Instance.GetMuteSoundEffect();
         
         // 璁剧疆鎾斁閫熷害锛屼娇鐢╬itch鏉ユ帶鍒�
         // pitch鑼冨洿寤鸿鍦�0.5-2.0涔嬮棿浠ラ伩鍏嶅け鐪�
@@ -358,6 +365,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>
@@ -458,6 +493,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