yyl
2025-12-03 93cab33f292e99c81e738b2b6c58c7fa21a7f371
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using UnityEngine;
using System;
using System.Collections.Generic;
using Spine.Unity;
 
/// <summary>
/// 战斗资源总管理器
/// 对外提供统一的资源管理接口
/// </summary>
public class BattleResManager : Singleton<BattleResManager>
{
    private BattlePreloadManager preloadManager = new BattlePreloadManager();
    
    /// <summary>
    /// 预加载战斗资源
    /// </summary>
    public void PreloadBattleResources(string battleGuid, List<TeamBase> redTeamList, List<TeamBase> blueTeamList, 
        Action<float> progressCallback = null, Action completeCallback = null)
    {
        preloadManager.PreloadBattleResources(battleGuid, redTeamList, blueTeamList, progressCallback, completeCallback);
    }
    
    /// <summary>
    /// 战斗结束后卸载蓝队资源
    /// </summary>
    public void UnloadBattleResources(string battleGuid)
    {
        preloadManager.UnloadManager.UnloadBlueTeamResources(preloadManager.CacheManager, battleGuid);
    }
    
    /// <summary>
    /// 获取Spine资源
    /// </summary>
    public SkeletonDataAsset GetSpineResource(string directory, string assetName, string battleGuid = "", bool autoLoadIfMissing = true)
    {
        return preloadManager.CacheManager.GetSpineResource(directory, assetName, battleGuid, autoLoadIfMissing);
    }
    
    /// <summary>
    /// 获取音频资源
    /// </summary>
    public AudioClip GetAudioResource(string directory, string assetName, string battleGuid = "", bool autoLoadIfMissing = true)
    {
        return preloadManager.CacheManager.GetAudioResource(directory, assetName, battleGuid, autoLoadIfMissing);
    }
    
    /// <summary>
    /// 处理红队变更
    /// </summary>
    public void HandleRedTeamChange(List<TeamBase> newRedTeamList, Action completeCallback = null)
    {
        preloadManager.HandleRedTeamChange(newRedTeamList, completeCallback);
    }
}