Files
5.24BuYu/Assets/MyGame/Scripts/fishResources/AudioResourcesData.cs
T
2026-04-28 01:53:41 +08:00

78 lines
2.8 KiB
C#

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<string, int> name_IDDic=new Dictionary<string, int>();
public static Dictionary<int, AudioClip> audioClipDic=new Dictionary<int, AudioClip>();
static Dictionary<int, AudioClip> audioClipDefaultDic=new Dictionary<int, AudioClip>();
static Dictionary<int, AudioClip> audioClipGameDic=new Dictionary<int, AudioClip>();
const string Audio_AALabel="Audio";
static AudioResourcesData()
{
//这里要添加默认的音效 背景 按钮点击
LoadDefaultAudioGame();
}
static async void LoadDefaultAudioGame()
{
string prefabFishPath = Resources.Load<TextAsset>("tbaudio").text;
var v = JsonConvert.DeserializeObject<List<AudioResourcesData>>(prefabFishPath);
foreach (var item in v)
{
Debug.Log("加载文件音频ID: " + item.audioID);
Debug.Log(item.audioID + "加载文件音频路径: " + item.audioResourcesPath);
name_IDDic[item.audioResourcesPath]=item.audioID;
}
var keys = new List<string> { Audio_AALabel, "Default" };
await Addressables.LoadAssetsAsync<AudioClip>(keys, audio =>
{
Debug.Log("加载音频: " + audio.name);
Debug.Log("加载音频ID: " + name_IDDic[audio.name]);
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<string> { Audio_AALabel, gameType.ToString() };
await Addressables.LoadAssetsAsync<AudioClip>(keys, audio =>
{
//Debug.Log("加载音频: " + audio.name);
//Debug.Log("加载音频ID: " + name_IDDic[audio.name]);
if (name_IDDic.ContainsKey(audio.name))
{
audioClipGameDic.Add(name_IDDic[audio.name], audio);
}
}, MergeMode.Intersection).Task;
audioClipDic=new Dictionary<int, AudioClip>(audioClipDefaultDic);
foreach (var item in audioClipGameDic)
{
audioClipDic.Add(item.Key,item.Value);
}
Debug.Log("加载了:"+ audioClipDic.Count);
}
}