NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Framework/Audio/PreLoadAudioAsset.cs

52 lines
1.2 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using PhxhSDK;
using UnityEngine;
public class PreLoadAudioAssets
{
//test
//用的时候转成配置
private static readonly List<string[]> _audioFightArrayList = new List<string[]>()
{
new []{"BtnSoundTest", "BtnSoundTest"}
};
public static string[] GetAudioAssetArray(AudioAssetModule module)
{
int idx = (int)module;
if (idx >= _audioFightArrayList.Count)
{
return null;
}
return _audioFightArrayList[idx];
}
public static async UniTask PreLoadAudioByModule(AudioAssetModule module)
{
try
{
var audioArr = GetAudioAssetArray(module);
if (audioArr == null) return;
for (var i = 0; i < audioArr.Length; i++)
{
AssetManager.Instance.PostPreload<AudioClip>(audioArr[i]);
}
await AssetManager.Instance.WaitAllPreloads();
}
catch (Exception e)
{
DebugUtil.LogError($"AudioAssetModule module: {module}, Exception:{e}");
throw;
}
}
}
public enum AudioAssetModule
{
Fight
}