// ============================================================================ // IResourceCache.cs — 资源缓存服务接口 // Feature: 001-async-resource-loading // ============================================================================ using System; using Cysharp.Threading.Tasks; using UnityEngine; namespace ProjSG.Resource { /// /// 全局资源缓存服务接口。 /// 提供预加载后的同步缓存获取能力,以及异步加载+自动缓存能力。 /// public interface IResourceCache { /// /// 缓存中的资源数量 /// int CachedCount { get; } /// /// 同步获取已缓存的资源。 /// 如果资源未在缓存中,返回 null(不会触发加载)。 /// T GetCached(string location) where T : UnityEngine.Object; /// /// 检查资源是否已在缓存中。 /// bool IsCached(string location); /// /// 异步获取资源。缓存命中直接返回,未命中则加载并缓存。 /// 同一资源的并发请求自动去重。 /// UniTask GetOrLoadAsync(string location) where T : UnityEngine.Object; /// /// 批量预加载资源到缓存。 /// UniTask PreloadAsync(string[] locations, bool permanent = false, IProgress progress = null); /// /// 释放指定资源的缓存。常驻资源需 forceRelease=true。 /// void Release(string location, bool forceRelease = false); /// /// 释放所有非常驻缓存资源。 /// void ReleaseAll(); /// /// 释放所有资源(含常驻)。 /// void ForceReleaseAll(); } }