74 lines
3.0 KiB
C#
74 lines
3.0 KiB
C#
using UnityEngine;
|
||
using System.IO;
|
||
|
||
namespace OCES.Audio
|
||
{
|
||
/// <summary>
|
||
/// 音频系统扩展配置,集中管理所有路径和可调参数。
|
||
/// 资产位置:Assets/Settings/AudioExtendSettings.asset
|
||
/// 编辑入口:Project Settings > Audio Extend
|
||
/// 运行时注入:AudioSystem.Awake() 将 Inspector 引用注入 _instance
|
||
/// </summary>
|
||
public class AudioExtendSettings : ScriptableObject
|
||
{
|
||
// ========== Resource Paths ==========
|
||
[Header("Resources")]
|
||
[Tooltip("Resources 子目录:音频配置文件(.bytes)")]
|
||
public string audioConfigPath = "AudioData";
|
||
|
||
[Tooltip("Resources 子目录:音频资源文件(.wav/.ogg)")]
|
||
public string audioResourcePath = "Audios";
|
||
|
||
[Tooltip("Resources 路径:AudioMixer 资产")]
|
||
public string audioMixerPath = "Audios/Master";
|
||
|
||
public bool useAssetBundle = false;
|
||
public string audioBundlePath = "Bundles/audios.ab";
|
||
|
||
// ========== AudioMixer Group Paths ==========
|
||
[Header("AudioMixer Groups")]
|
||
public string sfxGroupPath = "Master/Regular/SFX";
|
||
public string voiceGroupPath = "Master/Regular/Voice";
|
||
public string accentSfxGroupPath = "Master/SFX_Accent";
|
||
public string musicGroupPath = "Master/Regular/Music";
|
||
public string ambienceGroupPath = "Master/Regular/SFX/Ambience";
|
||
|
||
// ========== AudioMixer Parameters ==========
|
||
[Header("Lowpass Filter")]
|
||
public string lowpassParamName = "LowpassFreq";
|
||
public float lowpassEnabledCutoff = 440f;
|
||
public float lowpassDisabledCutoff = 22000f;
|
||
public float lowpassTweenDuration = 0.2f;
|
||
|
||
// ========== Audio Import ==========
|
||
[Header("Audio Import Settings")]
|
||
public AudioCompressionFormat compressionFormat = AudioCompressionFormat.Vorbis;
|
||
public uint sfxSampleRate = 22050;
|
||
public uint musicSampleRate = 44100;
|
||
public float musicQuality = 0.13f;
|
||
public float sfxQuality = 0.5f;
|
||
|
||
public float decompressThreshold = 5f; // ≤ 此值 → DecompressOnLoad
|
||
public float streamingThreshold = 15f; // ≥ 此值 → Streaming
|
||
|
||
// ========== Fade ==========
|
||
[Header("Fade")]
|
||
public DG.Tweening.Ease defaultFadeOutEase = DG.Tweening.Ease.InSine;
|
||
public DG.Tweening.Ease defaultFadeInEase = DG.Tweening.Ease.OutSine;
|
||
|
||
// ── Singleton ──
|
||
|
||
public static AudioExtendSettings Instance { get; internal set; }
|
||
|
||
// 便利属性:拼接完整路径
|
||
public string FullAudioResourcePath
|
||
{
|
||
get { return Path.Combine(Application.dataPath, "Resources", this.audioResourcePath); }
|
||
}
|
||
|
||
public string FullAudioConfigPath
|
||
{
|
||
get { return Path.Combine(Application.dataPath, "Resources", this.audioConfigPath); }
|
||
}
|
||
}
|
||
} |