音频回调与音效音量初始化问题解决

This commit is contained in:
Han
2025-04-21 17:13:22 +08:00
parent 59e96db7a9
commit dcd0ea8d5d
4 changed files with 5 additions and 6 deletions

View File

@@ -80,7 +80,7 @@ namespace Stary.Evo.AudioCore
if (poolDict[type].Count == 0)
{
// 如果池为空,动态创建新的 GameObject仅限 SFX 与 Voice
if (type == "SFX" && type == "Voice")
if (type == "SFX" || type == "Voice")
{
CreateAudioSource(type);
}

View File

@@ -21,6 +21,7 @@ namespace Stary.Evo.AudioCore
/// [onComplete:回调行为], [delayOnCompleteTime:延迟回调执行的时间]}</param>
public override void Play(AudioData audioData)
{
audioData = AudioDataInitialize(audioData);
AudioSource source = audioSourcePool.GetAudioSource("SFX");
if (source == null) return;
@@ -62,9 +63,8 @@ namespace Stary.Evo.AudioCore
private IEnumerator PlaySFXCoroutine(AudioSource source, float delay, System.Action onComplete)
{
yield return new WaitForSeconds(source.clip.length + delay);
onComplete?.Invoke();
audioSourcePool.ReturnAudioSource("SFX", source.gameObject);
onComplete?.Invoke();
activeSources.Remove(source);
}
}

View File

@@ -66,9 +66,8 @@ namespace Stary.Evo.AudioCore
private IEnumerator PlayVoiceCoroutine(AudioSource source, float delayOnComplete, System.Action onComplete)
{
yield return new WaitForSeconds(source.clip.length + delayOnComplete);
onComplete?.Invoke();
audioSourcePool.ReturnAudioSource("Voice", source.gameObject);
onComplete?.Invoke();
currentSource = null;
myCoroutine = null;
}