UI框架总结

在这里插入图片描述
GameRoot=>LoginSys=>ResSvc=>LoginWind/CreateWind
AudioSvc 在点击时间和进入场景时调用

GameRoot

GameRoot是个空物体 挂载着 二级层脚本 并控制着它们初始化

在这里插入图片描述
是个单例 且不能Destroy 拥有公用API的引用 可以直接调用公用API

控制这游戏的开始 服务模块、业务系统模块的初始化

public class GameRoot : MonoBehaviour
{
    public static GameRoot instance = null;
    public LoadingWind loadingWind;
    public DynamicWind dynamicWind;

    private void Start()
    {
        DontDestroyOnLoad(this); // 让这个游戏物体一直不被摧毁
        Debug.Log("Game Start...");
        
        ClearUiRoot();
        Init();
    }

    /// <summary>
    /// 初始化之前关闭所有界面
    /// </summary>
    private void ClearUiRoot()
    {
        Transform canvas = this.transform.Find("Canvas");
        for(int i = 0; i < canvas.childCount; i++)
        {
            canvas.GetChild(i).gameObject.SetActive(false);
        }
        dynamicWind.SetWindState();
    }
    /// <summary>
    /// 游戏初始化
    /// </summary>
    private void Init()
    {
        instance = this;

        //服务模块初始化
        ResSvc res = GetComponent<ResSvc>();//资源服务
        res.InitSvc();
        AudioSvc audioSvc = GetComponent<AudioSvc>();//音频服务
        audioSvc.InitSvc();
        // 业务系统模块初始化
        LoginSystem login = GetComponent<LoginSystem>();
        login.InitSys();

        //进入登录场景和加载相应的UI
        login.EnterLogin();//进入登录界面 1.异步加载场景  
                                        //2.显示加载进度
                                        //3.切换界面   
    **ResSvc实现  AsycLoadScene 方法中有一个回调函数  
    当异步加载场景 显示加载进度为100时  回到LoginSys 进行切换界面**
                                        

        //dynamicWind.AddTips("这是一条游戏提示");
        //dynamicWind.AddTips("这是一条游戏提示222");



       
    }

    /// <summary>
    /// 增加弹窗提示!  为了方便调用 因为增加弹窗提示这个方法在很多地方都会被用到
    /// </summary>
    /// <param name="text"></param>
    public static void AddTips(string text)
        {
          instance.dynamicWind.AddTips(text);
        }

登录系统LoginSys

LoginSys是个单例 其中有LoginWind和CreateWind的引用 可以调用两个脚本的方法
Wind脚本层控制着点击事件和自身的初始化

基类WindRoot

申请服务模块的引用 初始化时拿到单例引用 减少访问服务模块单例的调用 减少代码量

一些窗口通用的方法 直接从基类继承 增加代码复用率 比如 SetWindState 设置窗口状态 初始化 和 启用禁用写在一个方法里

SetText设置窗口Text的文字内容 就是把Unity自带Api写在方法里 等等

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
高清完整版,自己做的目录。 前言 课程设计说明 关于引用作品版权说明 第1章 Bootstrap入门 1 Bootstrap简介 1.1 Bootstrap简介 1.2 Bootstrap文件结构和标准模板 操作案例:在页面中使用Bootstrap 2 Bootstrap功能介绍 2.1.Bootstrap构成模块 2.2 Bootstrap的特色和功能介绍 2.2.1 Bootstrap的特色 2.2.2 媒体查询 2.2.3 Bootstrap主要功能 2.3 Bootstrap优秀插件 2.4 Bootstrap版本变化 3 Bootstrap优秀网站示例 本章总结 本章作业 第2章 Bootstrap布局 1 Bootstrap的结构 1.1 使用栅格系统 1.1.1 绘制栅格 1.1.2 栅格系统的列偏移 操作案例1:制作音乐网站首页 1.1.3 栅格系统的列交换 1.1.4 栅格系统的嵌套 1.2 响应式栅格 操作案例2:组合栅格系统 2 CSS布局概要 2.1 CSS布局简介 2.2 基础排版 2.2.1 标题 2.2.2 主体内容 2.2.3 对齐方式 2.2.4 列表 3 禁用响应式布局 本章总结 本章作业 第3章 Bootstrap组件 1 按钮 操作案例1:制作Bootstrap官网案例页面 2 表格 3 CSS组件 3.1 表单 3.2 输入框组 3.3 图标 3.4 下拉菜单 操作案例2:制作收集用户信息页面 3.5 按钮组 3.6 导航和导航条 操作案例3:制作导航栏 3.7 缩略图 3.8 媒体对象 本章总结 本章作业 第4章 Bootstrap插件 l 动画过渡 2 Bootstrap中的JS插件 2.1 模态框 操作案例1:利用模态窗体制作百度登录框 2.2 轮播图 操作案例2:利用.Bootstrap制作携程网首页的轮播图 2.3 选项卡 2.4 折叠 操作案例3:利用Bootstrap制作导航菜单 本章总结 本章作业 第5章jQuery Mobile入门 l jQuery Mobile入门 1.1 jQuery Mobile简介 1.2 jQuery Mobile准备文档 1.3 jQuery Mobile架构 1.3.1 jQuery Mobile属性 1.3.2 jQuery Mobile主题 1.3.3 jQuery Mobile视图 操作案例1:制作jQuery Mobile基本页面 1.3.4 jQuery Mobile对话框 1.4 与电话整合 操作案例2:制作商家信息展示页面 2 jQuery Mobile UI组件 2.1 网格系统 2.2 格式化内容 2.3 可折叠的内容 2.4 工具栏 操作案例3:制作影视介绍页面 2.5 按钮 操作案例4:制作音乐播放器页面 本章总结 本章作业 第6章jQuery Mobile基础 1 列表 1.1 整页列表与插入列表 1.2 视觉分隔符 1.3 交互行 1.4 图片 1.4.1 图标 1.4.2 缩略图 1.4.3 计数气泡 2 表单组件 2.1 表单动作 2.2 表单元素 2.2.1 文本标签和容器标签 2.2.2 文本输入框 2.2.3 textarea输入区域 2.2.4 HTML5新增标签 操作案例:制作信息收集页面 3 jQuery Mobile API 3.1 jQuery:Mobile API 3.2 jQuery Mobile事件 3.2.1 页面事件 3.2.2 方向事件 3.2.3 触摸事件 本章总结 本章作业
MVC(Model-View-Controller)是一种常见的UI框架,它将应用程序的逻辑分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。以下是MVC框架的优缺点: 优点: 1. 分离关注点:MVC框架将应用程序的不同方面分离得很清晰,模型负责数据处理和业务逻辑,视图负责展示用户界面,控制器负责接收用户输入和协调模型与视图之间的交互。这种分离使得代码更易于维护、测试和重用。 2. 可扩展性:由于MVC框架的强大分层结构,可以很容易地扩展应用程序,添加新的功能或调整现有功能,而不会对其他部分产生太多影响。 3. 并行开发:MVC框架允许团队中的开发人员并行工作,因为模型、视图和控制器可以独立开发和测试。 4. 可维护性:MVC框架的分层结构使代码更易于理解和维护。当一个组件需要修改时,可以更容易地找到并理解其依赖关系。 缺点: 1. 学习曲线:相比于其他UI框架,MVC框架可能需要更长的学习曲线。开发人员需要理解并正确实现模型、视图和控制器之间的通信和交互。 2. 过度设计:在小型应用程序中使用MVC框架可能会导致过度设计,增加了开发成本和复杂性。对于简单的应用程序来说,使用MVC可能会过于冗余。 3. 性能问题:某些情况下,MVC框架可能会引入一些性能问题,例如在高并发环境下可能存在模型与视图之间频繁的通信,这可能会导致性能瓶颈。 总结起来,MVC框架的优点包括分离关注点、可扩展性、并行开发和可维护性,而缺点则包括学习曲线、过度设计和潜在的性能问题。选择是否使用MVC框架应该根据具体的应用需求和团队情况来决定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大橘915818

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值