// ============================================================================
// IResourcePreloader.cs — 资源预加载服务接口
// Feature: 001-async-resource-loading
// ============================================================================
using System;
using Cysharp.Threading.Tasks;
namespace ProjSG.Resource
{
///
/// 资源预加载服务接口。
/// 按场景/流程组织批量资源预加载。
///
public interface IResourcePreloader
{
///
/// 注册预加载配置。
///
void RegisterConfig(PreloadConfig config);
///
/// 执行指定预加载配置。
///
UniTask PreloadAsync(string configName, IProgress progress = null);
///
/// 按资源标签批量预加载。
///
UniTask PreloadByTagAsync(string tag, IProgress progress = null);
///
/// 卸载指定配置的资源(常驻配置不卸载)。
///
void UnloadConfig(string configName);
///
/// 检查配置是否已预加载完成。
///
bool IsConfigLoaded(string configName);
}
///
/// 预加载配置数据。
///
public class PreloadConfig
{
/// 配置名称
public string ConfigName { get; set; }
/// 需要预加载的资源地址列表
public string[] Locations { get; set; }
/// 需要预加载的资源标签列表
public string[] Tags { get; set; }
/// 是否为常驻资源(不允许卸载)
public bool IsPermanent { get; set; }
}
}