项目实战
- 需求分析
-
流程图
UI设计流程图.png - 类图
- UI管理器
- 单例模式
- 面板字典
- 显示/隐藏面板
- 获取面板
-
面板基类
uTools_1653126125063.png -
登陆管理器类
uTools_1653126255703.png
- UI管理器
-
- 准备工作
- 新建工程
- 导入Json相关脚本
- 导入资源
- 创建重要文件夹
- Resources
- Scripts
- StreamingAssets
- ArtRes
- 创建设置UGUI关键对象
- 设置Canvas,设置渲染模式,分辨率自适应
- 新建camera,设置渲染层级,clear flags
- 面板基类:脚本类
- 基类功能需求
- 显示自己
- 隐藏自己
- 淡入淡出
- 具体设计
- 成员变量
- isShow标识是否显示;私有
- CanvasGroup实现淡入淡出;私有
- 淡入淡出速度;私有
- UnityAction委托函数;私有
- 方法
- Init()负责初始化;公有抽象
- 淡出成功委托函数,委托主面板进行复杂逻辑的主控;私有
- ShowMe(),HideMe()显示隐藏;公有虚函数
- awake()中添加canvas group组件;保护继承虚函数
- start()中init;保护继承虚函数
- update()中执行淡入淡出逻辑;私有
- 成员变量
- 基类功能需求
- UI管理器
- 功能需求
- 动态创建删除面板
- 显示面板
- 隐藏面板
- 获得面板
- 具体设计
- 成员变量
- UIManger自身:单例模式全局唯一实例;私有静态
- UIManger自身属性:单例模式全局接入点;公有静态
- pannelDic存储面板的字典容器;私有
- canvasTrans Canvas对象的transform组件;私有
- 方法
- 构造方法:先设置好canvas;单例模式私有
- T ShowPanel()显示面板,返回面板;公有
- 泛型写法
- 使用反射机制获取面板信息
- 存在则加载,不存在创建,并储存在面板字典里
- 最后调用面板自己的panel.ShowMe()
- HidePanel(bool isFade)隐藏面板;公有
- 泛型写法
- 参数表示是否立刻隐藏
- 使用反射机制获取面板信息
- 如果选择淡出效果,则调用面板基类的HideMe()方法,并实现回调函数
- 若选择直接隐藏则删除面板
- T Get Panel()获得面板,返回面板;公有
- 泛型写法
- 使用反射机制获取面板信息
- 从面板字典里查找返回
- 成员变量
- 功能需求
- 提示面板
- 拼面板
- 将示意图放在最上层,照着拼
- 先拼图片再拼文字,文字放在最上层,不要插在图片中间
- 面板逻辑
- 创建脚本文件夹,根据功能与类型创建文件夹Scripts/Login/TipPanel
- TipPanel脚本,自定义动态加载要求脚本类名与面板名一致
- 修改提示内容
- 点击确定关闭面板
- Main脚本负责脚本入口
- 创建面板预设体资源文件夹Resources/UI/TipPanel,拖为预设体
- 拼面板
网友评论