This commit is contained in:
2026-10-15 03:57:20 +08:00
parent 8498afd5cf
commit 1932b8569b
70 changed files with 916 additions and 352 deletions
@@ -15,8 +15,8 @@ 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>();
// ⭐ 音效字典存放在框架层 AudioManager(框架层不反向依赖 AudioResourcesData):
// AudioManager.NameToIdDic = 资源名→ID,AudioManager.ClipDic = ID→AudioClip
static Dictionary<int, AudioClip> audioClipDefaultDic=new Dictionary<int, AudioClip>();
static Dictionary<int, AudioClip> audioClipGameDic=new Dictionary<int, AudioClip>();
const string Audio_AALabel="Audio";
@@ -46,24 +46,24 @@ public class AudioResourcesData
Debug.Log("加载文件音频ID: " + item.audioID);
Debug.Log(item.audioID + "加载文件音频路径: " + item.audioResourcesPath);
name_IDDic[item.audioResourcesPath]=item.audioID;
AudioManager.NameToIdDic[item.audioResourcesPath]=item.audioID;
}
var keys = new List<string> { Audio_AALabel, "Default" };
_defaultAudioHandle = Addressables.LoadAssetsAsync<AudioClip>(keys, audio =>
{
Debug.Log("加载音频: " + audio.name);
if (name_IDDic.ContainsKey(audio.name))
if (AudioManager.NameToIdDic.ContainsKey(audio.name))
{
Debug.Log("加载音频ID: " + name_IDDic[audio.name]);
audioClipDefaultDic.Add(name_IDDic[audio.name],audio);
Debug.Log("加载音频ID: " + AudioManager.NameToIdDic[audio.name]);
audioClipDefaultDic.Add(AudioManager.NameToIdDic[audio.name],audio);
}
}, MergeMode.Intersection);
await _defaultAudioHandle.Task;
foreach (var item in audioClipDefaultDic)
{
audioClipDic.Add(item.Key, item.Value);
AudioManager.ClipDic.Add(item.Key, item.Value);
}
Debug.Log("加载了:"+ audioClipDic.Count);
Debug.Log("加载了:"+ AudioManager.ClipDic.Count);
}
//public static async Task LoadAudioGame()
//{
@@ -116,9 +116,9 @@ public class AudioResourcesData
// 句柄保存到 _gameAudioHandle,离房时 UnLoadAudioGame 真正释放 → 鱼包才能卸载
_gameAudioHandle = Addressables.LoadAssetsAsync<AudioClip>(keys, audio =>
{
if (name_IDDic != null && name_IDDic.ContainsKey(audio.name))
if (AudioManager.NameToIdDic != null && AudioManager.NameToIdDic.ContainsKey(audio.name))
{
audioClipGameDic[name_IDDic[audio.name]] = audio;
audioClipGameDic[AudioManager.NameToIdDic[audio.name]] = audio;
}
}, MergeMode.Intersection);
@@ -137,17 +137,17 @@ public class AudioResourcesData
await _gameAudioHandle.Task;
}
audioClipDic = new Dictionary<int, AudioClip>();
AudioManager.ClipDic = new Dictionary<int, AudioClip>();
if (audioClipDefaultDic != null)
{
foreach (var item in audioClipDefaultDic)
audioClipDic[item.Key] = item.Value;
AudioManager.ClipDic[item.Key] = item.Value;
}
foreach (var item in audioClipGameDic)
{
audioClipDic[item.Key] = item.Value;
AudioManager.ClipDic[item.Key] = item.Value;
}
Debug.Log("加载音频数量: " + audioClipDic.Count);
Debug.Log("加载音频数量: " + AudioManager.ClipDic.Count);
}
catch (Exception e)
{
@@ -166,9 +166,9 @@ public class AudioResourcesData
audioClipGameDic.Clear();
// 重建总字典:只保留默认音频
audioClipDic = new Dictionary<int, AudioClip>(audioClipDefaultDic);
AudioManager.ClipDic = new Dictionary<int, AudioClip>(audioClipDefaultDic);
Debug.Log("卸载完成,当前音频数量:" + audioClipDic.Count);
Debug.Log("卸载完成,当前音频数量:" + AudioManager.ClipDic.Count);
return Task.CompletedTask;
}
@@ -43,6 +43,8 @@ public class FishResourcesData
private static Dictionary<string,int> FishResourcesSpriteDic;//Spritepath--id
static FishResourcesData()
{
// ⭐ 把鱼 prefab 获取钩子注入框架层对象池(框架层不能反向引用 FishResourcesData)
Pool.GetFishPrefab = GetFishPrefab;
Init();
}
async static void Init()