using XGame.Framework.Asyncs; namespace XGame.Framework.Asset { /// /// 资源模块接口 /// public interface IAssetModule { /// /// 转换AddressableName /// 会根据游戏当前语言、品质等级返回对应的AddressableName /// /// /// string ConvertAddressableName(string addressableName); ///// ///// 同步加载接口 ///// 使用该接口加载的资源严禁使用Object.Destroy销毁,只能使用Recycle(obj)方法回收 ///// ///// 返回值类型 ///// 可寻址资源名字 ///// 返回泛型对象 //TResult LoadSync(string addressableName); ///// 资源标签,默认为空,相同标签的的异步加载可使用标签统一删除或结束回调 /// /// 异步加载接口 /// 使用该接口加载的资源严禁使用Object.Destroy销毁,只能使用Recycle(obj)方法回收 /// /// 返回对象类型 /// 可寻址资源名字 /// 返回异步回调 IAssetLoadAsync LoadAsync(string addressableName); /// /// 回收资源 /// /// void Recycle(object obj); ///// ///// 停止指定的异步加载 ///// ///// ///// //void StopAsync(IAssetLoadAsync async); /// /// 结束所有加载的异步 /// void StopAllAsyncs(); /// /// 卸载所有没有使用的资源 /// void UnloadUnusedAssets(); ///// ///// 预留 Instantiate UnityEngine.Object ///// ///// ///// ///// //TObject Instantiate(TObject original) where TObject : UnityEngine.Object; /// /// 异步加载Scene的AssetBundle到内存 /// /// IAsync LoadSceneBundleAsync(string sceneName); /// /// 卸载scene的AssetBundle /// /// void UnLoadSceneBundle(string sceneName); #region 预加载 /// /// 预加载接口 /// 只加载不实例化 /// /// /// /// IAssetPreloadAsync PreloadAsync(string addressableName); /// /// 释放预加载的资源 /// 如果预加载的资源已经实例化,则无效 /// /// void UnloadPreloadAsset(string addressableName); #endregion } }