// ============================================================================ // 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; } } }