为什么要弄这套框架
游戏中,弹框往往是比较频繁的一种页面切换,我们需要处理各种状态,比如:
- 各种提示弹框弹出时,其它弹框不能覆盖
- 弹框关闭后,后面的弹框需要显示
…
因此,目前有众多大神会实现一套弹框的管理机制,本框架也是在项目中总结提炼,并结合了解到的一些实际需求,整合而来的。
这套框架有什么用
核心解决:
- 弹框的依次显示
队列
问题 - 弹框的
优先级
问题 - 一个prefab可以
多次
实例化的问题
TODO
- 本框架暂未实现资源释放问题
怎么使用这套框架
-
从git克隆后,提出PopupManager.ts 和 PopupBase.ts 两个文件加入自己的工程即可。
-
所有弹框以prefab的形式存在,且prefab都挂载了PopupBase脚本。
-
在弹框显示前调用
PopupManager.instance.init();
- 在需要显示弹框的地方调用
PopupManager.instance.show(option: { name?: string, prefab?: Prefab, path?: string, priority?: number, params?: any, keep?: boolean }):void;
字段解释
字段名 | 默认值 | 解释 |
---|---|---|
priority | 0 | 层级 |
params | null | 弹框参数 |
keep | false | 是否保持当前弹框 |
- 如果是拖曳的,传入prefab
- 如果是动态加载的,传入path
- 如果一个prefab需要多次实例化,需要将name的名字不同
- 隐藏或销毁
PopupManager.instance.hide(name:string):void;
PopupManager.instance.remove(name:string):void;
怎么获取这套框架
关注公众号,回复【C3DLIBS】
即可获取
附录
本框架在完善过程中参考了下面两位开发者提出的意见,在此表示感谢。