一套基于Creator的简单弹框管理框架

为什么要弄这套框架

游戏中,弹框往往是比较频繁的一种页面切换,我们需要处理各种状态,比如:

  1. 各种提示弹框弹出时,其它弹框不能覆盖
  2. 弹框关闭后,后面的弹框需要显示

因此,目前有众多大神会实现一套弹框的管理机制,本框架也是在项目中总结提炼,并结合了解到的一些实际需求,整合而来的。

这套框架有什么用

核心解决:

  1. 弹框的依次显示队列问题
  2. 弹框的优先级问题
  3. 一个prefab可以多次实例化的问题

TODO

  1. 本框架暂未实现资源释放问题

怎么使用这套框架

  1. 从git克隆后,提出PopupManager.ts 和 PopupBase.ts 两个文件加入自己的工程即可。

  2. 所有弹框以prefab的形式存在,且prefab都挂载了PopupBase脚本。

  3. 在弹框显示前调用

PopupManager.instance.init();
  1. 在需要显示弹框的地方调用
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的名字不同
  1. 隐藏或销毁
PopupManager.instance.hide(name:string):void;
PopupManager.instance.remove(name:string):void;

怎么获取这套框架

关注公众号,回复【C3DLIBS】即可获取

image

附录

本框架在完善过程中参考了下面两位开发者提出的意见,在此表示感谢。

3赞

已上架Cocos商店,3.0版本可以直接在编辑器中获取

2.x版本也上架到扩展商店了,使用2.4.4开发,低版本仅需要修改动态加载的api即可

mark!