using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Stary.Evo.AudioCore { /// /// Audio数据 /// public struct AudioData { /// /// 延迟播放时间 /// public float delayTime; /// /// 音频 /// public AudioClip clip; /// /// 音量 /// public float volume; /// /// 回调行为 /// public System.Action onComplete; /// /// 延迟回调执行的时间 /// public float delayOnCompleteTime; /// /// 自然过渡时间 /// public float fadeDuration; /// /// 是否不打断上一段对话 /// public bool isNotOverVoice; /// /// 是否是3D声音 /// public bool is3D; /// /// 3D声音载体 /// public GameObject soundObject; } public interface IAudio { void Play(AudioData audioData); void Stop(AudioData audioData); } public abstract class AbstractAudio : IAudio { public abstract void Play(AudioData audioData); public abstract void Stop(AudioData audioData); /// /// 音频数据初始化 /// /// /// public virtual AudioData AudioDataInitialize(AudioData audioData) { if (audioData.volume == 0) { audioData.volume = 1f; } return audioData; } } }