Files
2026-05-15 16:45:58 +08:00

74 lines
3.0 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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); }
}
}
}