EitanWong / UIManager

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UIManager

Unity的UI管理框架

简介

  • 这是一个能够让你在游戏制作中方便管理UI面板的框架
  • 仅仅只需几行代码,就可以轻松创建 更改 管理 UI面板
  • 含有UI面板的事件消息,不同面板之间可以互传消息
  • 也可进行事件消息广播
  • UIManager配备了UI面板的生命周期,方便您使用
  • UIManager将简化您对游戏UI管理工作

教程

  • 使用UIManager需要引入UIFrameWork命名空间
  • 在您制作UI面板时 请先引入UIFrameWork.BasePanel命名空间
  • 再给你的面板加上BaseUIPanel脚本
  • 或者编写特定的UI面板脚本时继承自BaseUIPanel
  • 将您制作好的UI面板预制物放入Resources\UIPanel文件夹中
  • 您可以在脚本中使用UIManager.ShowPanel(UI面板名称);创建并显示该面板
  • 例如:UIManager.ShowPanel("GamePanel");就创建了您放在UIPanel文件夹中的GamePanel面板
  • 您也可以使用UIManager.ShowPanel(UI面板名称,UI面板类型);创建特定类型的面板
    • Singleton,//唯一面板
    • Subclass,//复合面板
  • 唯一面板只能创建一次,当下次在使用ShowPanel时会将该UI面板放到最顶部并显示
  • 复合面板可以创建多个,常用于游戏中的弹窗

  • 关闭面板使用
  • UIManager.ClosePanel(UI面板名称);
  • UIManager.ClosePanel(UI面板序号);

  • 获取面板使用
  • UIManager.GetPanel(UI面板名称);
  • UIManager.GetPanel(UI面板名称,UI面板类型);
  • UIManager.GetPanel(UI面板序号);

  • 面板的生命周期说明
  • 要使用生命周期 请覆写生命周期函数
  • 例如
  • internal override void OnShow()
  • {
  • }
  • OnShow()//面板显示
  • OnShouwing()//面板显示中
  • OnPause()//面板暂停
  • OnPausing()//面板暂停中
  • OnClose()//面板关闭

  • UI事件消息使用说明
  • 事件消息类型
    • Send2All,//发送给所有UI面板
    • SendTarget,//发送指定UI面板
  • 发送事件消息使用
  • UIManager.SendEvent(数据);//广播给所有UI面板事件消息
  • UIManager.SendEvent(数据,面板信息[名称/序号]);//广播给所有UI面板事件消息

  • UI效果说明
  • FadeInFX(面板,效果更新时间,更新速度,回调函数);//淡入UI面板效果
  • FadeOutFX(面板,效果更新时间,更新速度,回调函数);//淡出UI面板效果
  • 回调函数 会在效果执行完毕后调用
  • 如果不想要回调函数,这项参数您可以不填写

  • 更多API可以查看UIManager.cs

  • 已知问题:
  • UI面板类型还没有分地很清楚
  • 使用带UI面板名称参数的方法,是找到面板托管栈上第一个找到该名称的面板
  • 可能时唯一面板 也可能时复合面板,所以推荐使用UI面板序列参数
  • 未来会加以改进
  • 更新情况2019-7-23
  • 加入了UIFX
  • 可以给面板增加淡入和淡出的效果
  • 2019-7-23编辑

About


Languages

Language:C# 100.0%