This commit is contained in:
daixiawu 2025-07-10 17:54:41 +08:00
commit a69964e14e

View File

@ -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;
}
}
}