Unity UGUI制作对话框的设计方案


游戏中会出现大量的弹出对话框UI,这部分功能虽然简单但是里面有很多细节需要注意

1、弹出的对话框UI要屏蔽触控,不能穿透UI到下层UI甚至3D对象上面
2、弹出框层级关系可能比较复杂,可能需要在一个弹框上覆盖另一个弹框,需要统一管理层级的逻辑
3、弹出框的弹出优先级需要注意,比如网游,服务器呼叫客户端弹出对话框,这个对话框我们不希望它随便弹出,必须当前场景不存在对话框的时候再弹出,这就需要把这些服务器弹框做延迟或者缓存

4、弹出框要响应android的物理返回,如果每一个对话框都单独去写这个逻辑就很麻烦,我们需要一个统一的入口解决这个问题


针对以上问题我这里有一个解决方案:

1、创建一个预设体模板,所有的对话框都以这个模板创建弹出对话框UI

2、这个预设体模板的sortOrder是递增的,每一个弹出框在实例化的时候都保证永远在最上层,同时给这个预设体添加panel用来下层界面的UI触控

3、把做好的弹框UI(必须以模板预设体为母体)拖入Resources下用来动态实例化

4、预设体模板中绑定脚本,控制弹框的透明度、点击事件、自动关闭事件等方法,这个脚本不需要编辑。


制作流程如下:

1、拖拽弹框预设体到场景中,如图

2、设置相应属性

3、继续用UGUI制作这个界面,但是注意所有内容必须放在PanelContent下

4、制作好UI之后拖入Resources/PopWinDialog/Prefabs/目录下当做预设体准备被程序动态加载

5、最后调用这个弹框的时候调用接口:

_PopWinManager.getInstance().PopWin("预设体的名字",autoCloseTime时间(可以不传这个参数))

用这套弹框系统还是挺方便的!相关资源下载地址:

http://download.csdn.net/download/jbl20078/9970288

或者有需要直接评论回复邮箱地址





你可能感兴趣的:(Unity开发)