using UnityEngine;
using XGame.Framework.Asset;
namespace XGame.Framework.UI
{
///
/// UI的加载模块
/// 每个UIView都有一个独立的IUIAssetModule
///
public interface IUIAssetModule
{
///
/// 异步加载接口
/// 使用该接口加载的资源严禁使用Object.Destroy销毁,只能使用Recycle(obj)方法回收
///
/// 返回对象类型
/// 可寻址资源名字
/// 返回异步回调
IAssetLoadAsync LoadAsync(string addressableName) where TResult : Object;
///
/// 回收资源
///
///
/// 是否销毁,只有GameObject可以销毁
void Recycle(Object obj, bool isDestroy = false);
///
/// 加载嵌套UI
/// 加载后需要自己设置父节点和激活
///
/// 共用UIKey
///
IAssetLoadAsync LoadNested(UIKey nestedKey);
///
/// 释放INestedView
/// INestedView不复用,只回收GameObject
///
///
/// 是否销毁GameObject, FGUI时忽略该参数
void Recycle(INestedView nestedView, bool isDestroy = false);
///
/// 结束所有加载的异步
///
void StopAllAsyncs();
/////
///// 释放该UI的所有资源
/////
//void UnloadUnusedAssets();
}
public interface IUIAssetModuleCreator
{
///
/// 框架业务不要用
///
///
///
IUIAssetModule Create(UIContext context);
}
}