feat: support asset bundle

This commit is contained in:
2026-05-15 16:45:58 +08:00
parent f34145d4cf
commit 0823328d99
27 changed files with 390 additions and 8 deletions
@@ -12,7 +12,7 @@ namespace OCES.Audio
public class AudioExtendSettings : ScriptableObject
{
// ========== Resource Paths ==========
[Header("Resource Paths")]
[Header("Resources")]
[Tooltip("Resources 子目录:音频配置文件(.bytes")]
public string audioConfigPath = "AudioData";
@@ -22,6 +22,9 @@ namespace OCES.Audio
[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";
@@ -288,6 +288,17 @@ namespace OCES.Audio
DontDestroyOnLoad(gameObject);
this.ResourceLoader = gameObject.AddComponent<ResourceLoader>();
if (AudioExtendSettings.Instance.useAssetBundle)
{
string bundlePath = Path.Combine(Application.streamingAssetsPath,
AudioExtendSettings.Instance.audioBundlePath);
this.ResourceLoader.SetProvider(new AssetBundleAssetProvider(bundlePath));
}
else
{
this.ResourceLoader.SetProvider(new ResourcesAssetProvider());
}
string audioConfigPath = AudioExtendSettings.Instance.audioConfigPath;
@@ -388,8 +399,6 @@ namespace OCES.Audio
AudioObject childContainer = this.m_audioObjects.GetMappingResult(switchContainer.Id, currentStateValue);
return childContainer ?? this.m_audioObjects.GetDefaultSwitchOrFallback(switchContainer);
}
}
public static class AudioConfigLoader
@@ -47,7 +47,7 @@ namespace OCES.Audio.Editor
};
}
[MenuItem("Tools/Audio/Create AudioExtendSettings Asset")]
[MenuItem("Tools/OCES/Audio/Create AudioExtendSettings Asset")]
static void CreateDefaultAsset()
{
if (!AssetDatabase.IsValidFolder("Assets/Settings"))
@@ -14,7 +14,7 @@ namespace OCES.Audio
get { return Path.Combine(Application.dataPath, "Resources", AudioExtendSettings.Instance.audioConfigPath); }
}
[MenuItem("Tools/Audio/Apply Audio Import Settings")]
[MenuItem("Tools/OCES/Audio/Apply Audio Import Settings")]
public static void RunFromMenu()
{
if (EditorUtility.DisplayDialog(