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); } }