添加struct管理AudioData
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
public class MusicPlayer
|
||||
public class MusicPlayer : AbstractAudio
|
||||
{
|
||||
private AudioSourcePool audioSourcePool;
|
||||
private AudioSource audioSource1;
|
||||
@@ -16,30 +16,29 @@ public class MusicPlayer
|
||||
/// <summary>
|
||||
/// 播放背景音乐
|
||||
/// </summary>
|
||||
/// <param name="clip">音频</param>
|
||||
/// <param name="volume">音量</param>
|
||||
/// <param name="fadeDuration">自然过渡时间</param>
|
||||
public void Play(AudioClip clip, float volume, float fadeDuration)
|
||||
/// <param name="audioData">{[clip:音频], [volume:音量], [fadeDuration:自然过渡时间]}</param>
|
||||
public override void Play(AudioData audioData)
|
||||
{
|
||||
if(audioSource1 == null)
|
||||
audioData = AudioDataInitialize(audioData);
|
||||
if (audioSource1 == null)
|
||||
{
|
||||
audioSource1 = audioSourcePool.GetAudioSource("Music");
|
||||
audioSource1.clip = clip;
|
||||
audioSource1.volume = volume;
|
||||
audioSource1.clip = audioData.clip;
|
||||
audioSource1.volume = audioData.volume;
|
||||
currentAudioSource = audioSource1;
|
||||
currentAudioSource.Play();
|
||||
CoroutineHelper.StartCoroutine(FadeMusic(audioSource1, fadeDuration, audioSource2));
|
||||
CoroutineHelper.StartCoroutine(FadeMusic(audioSource1, audioData.fadeDuration, audioSource2));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (audioSource2 == null)
|
||||
{
|
||||
audioSource2 = audioSourcePool.GetAudioSource("Music");
|
||||
audioSource2.clip = clip;
|
||||
audioSource2.volume = volume;
|
||||
audioSource2.clip = audioData.clip;
|
||||
audioSource2.volume = audioData.volume;
|
||||
currentAudioSource = audioSource2;
|
||||
currentAudioSource.Play();
|
||||
CoroutineHelper.StartCoroutine(FadeMusic(audioSource2, fadeDuration, audioSource1));
|
||||
CoroutineHelper.StartCoroutine(FadeMusic(audioSource2, audioData.fadeDuration, audioSource1));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -52,10 +51,11 @@ public class MusicPlayer
|
||||
/// <summary>
|
||||
/// 关闭背景音乐
|
||||
/// </summary>
|
||||
/// <param name="fadeDuration">关闭时的自然过渡时间</param>
|
||||
public void Stop(float fadeDuration)
|
||||
/// <param name="audioData">{[fadeDuration:自然过渡时间]}</param>
|
||||
public override void Stop(AudioData audioData)
|
||||
{
|
||||
CoroutineHelper.StartCoroutine(FadeOutMusic(currentAudioSource, fadeDuration));
|
||||
audioData = AudioDataInitialize(audioData);
|
||||
CoroutineHelper.StartCoroutine(FadeOutMusic(currentAudioSource, audioData.fadeDuration));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user