Files
plugin-library/Assets/04.AudioCore/RunTime/Abstract/IAudio.cs

95 lines
2.0 KiB
C#
Raw Normal View History

2025-03-31 11:49:53 +08:00
using System.Collections;
2025-03-06 17:24:31 +08:00
using System.Collections.Generic;
using UnityEngine;
2025-03-31 11:49:53 +08:00
namespace Stary.Evo.AudioCore
2025-03-06 17:24:31 +08:00
{
2025-03-07 17:52:50 +08:00
/// <summary>
2025-03-31 11:49:53 +08:00
/// Audio数据
2025-03-07 17:52:50 +08:00
/// </summary>
2025-03-26 09:34:52 +08:00
public struct AudioData
{
/// <summary>
2025-03-31 11:49:53 +08:00
/// 延迟播放时间
2025-03-26 09:34:52 +08:00
/// </summary>
public float delayTime;
2025-03-07 17:52:50 +08:00
2025-03-26 09:34:52 +08:00
/// <summary>
2025-03-31 11:49:53 +08:00
/// 音频
2025-03-26 09:34:52 +08:00
/// </summary>
public AudioClip clip;
2025-03-07 17:52:50 +08:00
2025-03-26 09:34:52 +08:00
/// <summary>
2025-03-31 11:49:53 +08:00
/// 音量
2025-03-26 09:34:52 +08:00
/// </summary>
public float volume;
2025-03-06 17:24:31 +08:00
2025-03-26 09:34:52 +08:00
/// <summary>
2025-03-31 11:49:53 +08:00
/// 回调行为
2025-03-26 09:34:52 +08:00
/// </summary>
public System.Action onComplete;
2025-03-06 17:24:31 +08:00
2025-03-26 09:34:52 +08:00
/// <summary>
2025-03-31 11:49:53 +08:00
/// 延迟回调执行的时间
2025-03-26 09:34:52 +08:00
/// </summary>
public float delayOnCompleteTime;
2025-03-06 17:24:31 +08:00
2025-03-26 09:34:52 +08:00
/// <summary>
2025-03-31 11:49:53 +08:00
/// 自然过渡时间
2025-03-26 09:34:52 +08:00
/// </summary>
public float fadeDuration;
2025-03-06 17:24:31 +08:00
2025-03-26 09:34:52 +08:00
/// <summary>
2025-03-31 11:49:53 +08:00
/// 是否不打断上一段对话
2025-03-26 09:34:52 +08:00
/// </summary>
public bool isNotOverVoice;
2025-07-16 13:54:05 +08:00
2025-03-26 09:34:52 +08:00
/// <summary>
2025-07-16 13:54:05 +08:00
/// 是否是3D音频
2025-03-26 09:34:52 +08:00
/// </summary>
2025-07-16 13:54:05 +08:00
public bool is3DAudio;
2025-03-07 17:52:50 +08:00
2025-03-26 09:34:52 +08:00
/// <summary>
2025-07-16 13:54:05 +08:00
/// 3D声音位置
/// </summary>
public Vector3 audio3DPosition;
/// <summary>
/// 3D声音最大距离
2025-03-26 09:34:52 +08:00
/// </summary>
2025-07-16 13:54:05 +08:00
public float audio3DMaxDistance;
2025-03-26 09:34:52 +08:00
}
2025-03-07 17:52:50 +08:00
2025-03-26 09:34:52 +08:00
public interface IAudio
{
void Play(AudioData audioData);
2025-03-06 17:24:31 +08:00
2025-03-26 09:34:52 +08:00
void Stop(AudioData audioData);
2025-03-06 17:24:31 +08:00
2025-06-04 14:57:54 +08:00
void Stop();
2025-03-26 09:34:52 +08:00
}
public abstract class AbstractAudio : IAudio
{
public abstract void Play(AudioData audioData);
2025-03-06 17:24:31 +08:00
2025-06-04 14:57:54 +08:00
public virtual void Stop(AudioData audioData){}
public virtual void Stop(){}
2025-03-06 17:24:31 +08:00
2025-03-26 09:34:52 +08:00
/// <summary>
2025-03-31 11:49:53 +08:00
/// 音频数据初始化
2025-03-26 09:34:52 +08:00
/// </summary>
/// <param name="audioData"></param>
/// <returns></returns>
public virtual AudioData AudioDataInitialize(AudioData audioData)
2025-03-07 17:52:50 +08:00
{
2025-03-26 09:34:52 +08:00
if (audioData.volume == 0)
{
audioData.volume = 1f;
}
return audioData;
2025-03-07 17:52:50 +08:00
}
}
2025-03-06 17:24:31 +08:00
}