| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
基于引用计数,为FairyGUI的包管理提供动态加载、卸载的功能
UIPackage静态依赖自动加载
在FairyGUI编辑器上静态配置的其他包的组件、图片等已支持自动跨包依赖,无需手动加载依赖的Package
基于引用计数的UIPackage自动加载与卸载功能
默认在某个UIPackage引用计数归零时,会自动进行卸载,也可以通过设置UIAssetManager的UnloadUnusedUIPackageImmediately值,来指定其不自动卸载,然后在合适的时机(比如切场景时),调用UnloadUnusedUIPackages方法进行主动卸载无用的UIPackage
便于拓展的设计
可结合自己项目的资源加载模块自行实现并传入IUIAssetLoader接口实例,例如Resources、AssetBundle、Addressables、YooAsets等
git clone或手动下载工程到项目的Packges路径下,为manifest.json文件加入一行"com.howegame.fariygui.dynamic": "file:FairyGUI-Dynamic",例如:
{
"dependencies": {
"com.howegame.fariygui.dynamic": "file:FairyGUI-Dynamic",
"其他的依赖": ""
}
}在使用任意FairyGUI之前,实例化UIAssetManager,在需要销毁时,调用它的Dispose方法,例如以下的初始化脚本
public class Init : MonoBehaviour
{
private UIAssetManager m_UIAssetManager;
private void Awake()
{
DontDestroyOnLoad(gameObject);
m_UIAssetManager = new UIAssetManager(new ResourcesUIAssetLoader("UI"), null);
}
private void OnDestroy()
{
m_UIAssetManager.Dispose();
m_UIAssetManager = null;
}
}运行时动态跨包依赖
目前存在的问题是,如果运行时动态添加了一个组件或图片,而它所处的包未被当前已经加载的包静态依赖时,会出现找不到它包的情况。这是由于FairyGUI原生的CreateObject接口仅支持同步GetUIPackage,需要在一定范围内改写源码才能实现异步加载。
提供PackageId=>PackageName映射文件的生成工具 主要用于有AddPackageById用途的情况
| Back | FazBrowse Home | New Git URL |