using Newtonsoft.Json; using Spine.Unity; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.InputSystem; using static UnityEngine.AddressableAssets.Addressables; [Serializable] public class AudioResourcesData { public int audioID; public string audioResourcesPath; public static Dictionary name_IDDic=new Dictionary(); public static Dictionary audioClipDic=new Dictionary(); static Dictionary audioClipDefaultDic=new Dictionary(); static Dictionary audioClipGameDic=new Dictionary(); const string Audio_AALabel="Audio"; static AudioResourcesData() { //这里要添加默认的音效 背景 按钮点击 LoadDefaultAudioGame(); } static async void LoadDefaultAudioGame() { string prefabFishPath = Resources.Load("tbaudio").text; var v = JsonConvert.DeserializeObject>(prefabFishPath); foreach (var item in v) { name_IDDic[item.audioResourcesPath]=item.audioID; } var keys = new List { Audio_AALabel, "Default" }; await Addressables.LoadAssetsAsync(keys, audio => { if (name_IDDic.ContainsKey(audio.name)) { audioClipDefaultDic.Add(name_IDDic[audio.name],audio); } }, MergeMode.Intersection).Task; foreach (var item in audioClipDefaultDic) { audioClipDic.Add(item.Key, item.Value); } Debug.Log("加载了:"+ audioClipDic.Count); } public static async void LoadAudioGame() { GameType gameType=GameManager.Instance.gameData.currGameType; var keys = new List { Audio_AALabel, gameType.ToString() }; await Addressables.LoadAssetsAsync(keys, audio => { if (name_IDDic.ContainsKey(audio.name)) { audioClipGameDic.Add(name_IDDic[audio.name], audio); } }, MergeMode.Intersection).Task; audioClipDic=new Dictionary(audioClipDefaultDic); foreach (var item in audioClipGameDic) { audioClipDic.Add(item.Key,item.Value); } Debug.Log("加载了:"+ audioClipDic.Count); } }