50 lines
1.3 KiB
C#
50 lines
1.3 KiB
C#
using UnityEngine;
|
|
|
|
namespace GameFramework
|
|
{
|
|
/// <summary>
|
|
/// 音效数据类 —— 封装 AudioClip 和音量。
|
|
/// 用于 UI 音效、游戏音效的配置。
|
|
///
|
|
/// 使用方式:
|
|
/// 1. 创建 ScriptableObject: Assets → Create → Audio Data
|
|
/// 2. 设置 AudioClip 和音量
|
|
/// 3. 拖到需要播放音效的组件上
|
|
/// </summary>
|
|
[CreateAssetMenu(fileName = "NewAudioData", menuName = "GameFramework/Audio Data")]
|
|
public class AudioData : ScriptableObject
|
|
{
|
|
[Header("音效设置")]
|
|
[Tooltip("音效剪辑")]
|
|
public AudioClip clip;
|
|
|
|
[Tooltip("音量 (0-1)")]
|
|
[Range(0f, 1f)]
|
|
public float volume = 1.0f;
|
|
|
|
[Tooltip("是否循环播放")]
|
|
public bool loop = false;
|
|
|
|
/// <summary>
|
|
/// 播放此音效
|
|
/// </summary>
|
|
public void Play(AudioSource source)
|
|
{
|
|
if (source == null || clip == null) return;
|
|
|
|
source.loop = loop;
|
|
source.volume = volume;
|
|
|
|
if (loop)
|
|
{
|
|
source.clip = clip;
|
|
source.Play();
|
|
}
|
|
else
|
|
{
|
|
source.PlayOneShot(clip, volume);
|
|
}
|
|
}
|
|
}
|
|
}
|