From 6a5bd035b528f361a1b53acae5d903908ada80b0 Mon Sep 17 00:00:00 2001 From: wuwenbo Date: Thu, 10 Jul 2025 15:33:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=9F=B3=E9=87=8F=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Scripts/Logic/Audio/AudioManager.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/My project/Assets/Scripts/Logic/Audio/AudioManager.cs b/My project/Assets/Scripts/Logic/Audio/AudioManager.cs index 37b49c1f0..219a525e1 100644 --- a/My project/Assets/Scripts/Logic/Audio/AudioManager.cs +++ b/My project/Assets/Scripts/Logic/Audio/AudioManager.cs @@ -43,7 +43,7 @@ namespace Logic.Audio foreach (var player in _allPlayer) player.Update(); } - public void PlayMusic(string musicName, float fadeIn, float fadeOut, bool isLoop) + public void PlayMusic(string musicName, float fadeIn, float fadeOut, bool isLoop, float volume=1) { if (!_clips.ContainsKey(musicName)) return; if (_musicPlayer != null) _musicPlayer.Stop(); @@ -53,6 +53,7 @@ namespace Logic.Audio _musicPlayer.Length = _clips[musicName].length; _musicPlayer.FadeInDuration = fadeIn; _musicPlayer.FadeOutDuration = fadeOut; + _musicPlayer.VolumeRatio = volume; _musicPlayer.Play(); } @@ -61,7 +62,7 @@ namespace Logic.Audio _musicPlayer?.Stop(); } - public void PlayAudio(string musicName, float fadeIn, float fadeOut, bool isLoop) + public void PlayAudio(string musicName, float fadeIn, float fadeOut, bool isLoop, float volume=1) { if (!_clips.ContainsKey(musicName)) return; var player = GetPlayer(); @@ -70,6 +71,7 @@ namespace Logic.Audio player.Length = _clips[musicName].length; player.FadeInDuration = fadeIn; player.FadeOutDuration = fadeOut; + _musicPlayer.VolumeRatio = volume; player.Play(); } @@ -108,6 +110,8 @@ namespace Logic.Audio public float Length; public float FadeInDuration; public float FadeOutDuration; + // 音量 0-1 + public float VolumeRatio; public float StartTime; public float EndTime; @@ -150,11 +154,11 @@ namespace Logic.Audio { if (Time.time - StartTime < FadeInDuration) { - Source.volume = (Time.time - StartTime) / FadeInDuration; + Source.volume = (Time.time - StartTime) / FadeInDuration * VolumeRatio; } else { - Source.volume = 1; + Source.volume = 1 * VolumeRatio; State = PlayerState.Playing; } } @@ -178,7 +182,7 @@ namespace Logic.Audio } else { - Source.volume = (FadeOutDuration - Time.time + EndTime) / FadeOutDuration; + Source.volume = (FadeOutDuration - Time.time + EndTime) / FadeOutDuration * VolumeRatio; } } }