【m】 修改淡入淡出
This commit is contained in:
@@ -84,9 +84,10 @@ namespace Stary.Evo.AudioCore
|
||||
UniTask FadeInMusic(AudioSource source, float fadeDuration);
|
||||
UniTask FadeOutMusic(AudioSource source, float fadeDuration);
|
||||
|
||||
|
||||
void Stop();
|
||||
void StopAll();
|
||||
|
||||
AudioSource GetAudioSource();
|
||||
}
|
||||
|
||||
public abstract class AbstractAudio : IAudio
|
||||
@@ -99,6 +100,13 @@ namespace Stary.Evo.AudioCore
|
||||
public abstract UniTask PlayAsync(AudioData audioData);
|
||||
|
||||
public abstract void StopAll();
|
||||
public abstract AudioSource GetAudioSource();
|
||||
|
||||
|
||||
public virtual UniTask FadeOutVoice(float fadeDuration)
|
||||
{
|
||||
return UniTask.CompletedTask;
|
||||
}
|
||||
|
||||
|
||||
public virtual void Stop()
|
||||
@@ -114,6 +122,7 @@ namespace Stary.Evo.AudioCore
|
||||
AudioSourcePool.Creation();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 音频数据初始化
|
||||
/// </summary>
|
||||
@@ -126,11 +135,15 @@ namespace Stary.Evo.AudioCore
|
||||
audioData.volume = 1f;
|
||||
}
|
||||
|
||||
if (audioData.fadeDuration == 0)
|
||||
if (!GetType().Name.Contains("Voice"))
|
||||
{
|
||||
audioData.fadeDuration = 1f;
|
||||
if (audioData.fadeDuration == 0)
|
||||
{
|
||||
audioData.fadeDuration = 1f;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return audioData;
|
||||
}
|
||||
|
||||
@@ -181,9 +194,10 @@ namespace Stary.Evo.AudioCore
|
||||
/// <param name="delay"></param>
|
||||
/// <param name="onComplete"></param>
|
||||
/// <returns></returns>
|
||||
public async UniTask PlayAudioAWait(AudioSourceToken audioSourceToken, float delay, System.Action onComplete)
|
||||
public async UniTask PlayAudioAWait(AudioSourceToken audioSourceToken, float delay,
|
||||
System.Action onComplete, float fadeDuration = 1f)
|
||||
{
|
||||
await PlayAudioAWait(audioSourceToken, delay);
|
||||
await PlayAudioAWait(audioSourceToken, delay, fadeDuration);
|
||||
onComplete?.Invoke();
|
||||
}
|
||||
|
||||
@@ -194,14 +208,14 @@ namespace Stary.Evo.AudioCore
|
||||
/// <param name="delay"></param>
|
||||
/// <param name="onComplete"></param>
|
||||
/// <returns></returns>
|
||||
public async UniTask PlayAudioAWait(AudioSourceToken audioSourceToken, float delay)
|
||||
public async UniTask PlayAudioAWait(AudioSourceToken audioSourceToken, float delay, float fadeDuration = 1f)
|
||||
{
|
||||
Debug.Log($"PlayAudioAWait:{GetType().Name}");
|
||||
if (!GetType().Name.Contains("Voice"))
|
||||
if (GetType().Name.Contains("Voice"))
|
||||
{
|
||||
await UniTask.Delay(TimeSpan.FromSeconds(audioSourceToken.source.clip.length - 2f),
|
||||
await UniTask.Delay(TimeSpan.FromSeconds(audioSourceToken.source.clip.length - fadeDuration),
|
||||
cancellationToken: audioSourceToken.cancellationToken.Token);
|
||||
await FadeOutMusic(audioSourceToken.source, 2f);
|
||||
await FadeOutMusic(audioSourceToken.source, fadeDuration);
|
||||
await UniTask.Delay(TimeSpan.FromSeconds(delay),
|
||||
cancellationToken: audioSourceToken.cancellationToken.Token);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user