UnityUI框架LowoUN-UI

LowoUN-UI是基于unity开发环境,以UGUI为基础进行扩展的UI库,定义了强规范的UI开发流程,以及提供满足大部分当前游戏业务需求的基础设施,以实现快速开发。

PS: 强规范

  • 是什么
    顾名思义是指需要从事的某件事情具有非常强的约束性。
  • 为什么(背景)
    通常只有当某件事情已经具有非常成熟的规则与流程的情况下,针对性的对其中仍需要进行扩展的部分做出严格的规则要求。
  • 有什么好处
    1,在清晰的规则之下,再开发导致的错误率极大降低,系统不稳定性得以大大改善。
    2,开发难度大大降低。做个类比,汽车生产流水线,每一道工序只需要关心局部的事情,所以即便经验较少的成员也可以胜任开发任务,团队得到合理配置。

特点

  • View与Model完全解耦(MVVM模式)
  • 文本化不同场景默认界面配置
  • 清晰的层级管理并文本化层级控制
  • 浏览历史记录与导航
  • 支持缓存的同时多条通知显示
  • 3D模型显示与交互支持
  • 动画状态管理器(预制通用状态)
  • 粒子特效支持
  • 渲染优化
  • 支持设备返回键全局回退(如Android设备)
  • 支持自由拖拽
  • 分辨率二级适配
  • 丰富的组件样式,如UILst
    1. 可静态预置(已取消),可动态加载
    2. 可自由定位,可MxN规则排列
    3. 可折叠(单层与多层折叠)
    4. 自动高度
    5. 多种排列方式
      1. 标准的上至下,左到右
      2. 从下至上
      3. 单行/单列,可居中至两侧扩展排列
  • 支持气泡剧情模块
  • 支持2D剧情模块
  • 支持新手指引模块

发布

AssetStore:Short URL: http://u3d.as/QXF(过期)
GitHubhttps://github.com/loywong/LowoUN-UI

备注

关于Wiki的说明

虽然有诸多细节需要阐述,但是在阅读完Readme.txt,并结合Sample范例的情况下,再观摩整个框架应该是比较轻松的事情,特别在使用层面来说设计的初衷仍是简单与直观,核心也是更多的采用组合方式来达到潜层次的设计。在使用该框架的场景时,一直强调的一个观点就是,希望表达的意图通过目录与代码进行自我描述。

如果有意见或建议,请不吝给我发邮件loywongcom@gmail.com

当然,如果根据现实情况,仍有建立一份Wiki文档的必要(墨菲定理必然都会应验),那么会在后期进行公布 (lowoun-ui/wiki)。

框架目录简介

以下内容可以略过,因为纯粹只是描述目录与文件的作用。不过既然写了,还是列举出来。

  1. Entry入口业务
    1. Entry.Unity 入口
    2. Entry 入口类
    3. INI 系统参数配置文本,包括全局资源
  2.  UI业务
    1. 美术资源
    2. INI资源配置文本
    3. 脚本
      • UILogic UI业务系统入口
      • UIHandler UI大类与具体模板类型定义
      • Tmpl 所有界面模板,每一个模块对应一个Handler(负责交互)和一个Binder(负责数据)
  3. UI框架主体
    1. 核心
      • Core 核心
      • Util 各种功能
      • Visual 面板/组件
    2. 辅助
      • Editor 面板制作扩展辅助
      • Anim 动画相关功能类
      • Tmpl 基础面板模板
    3. 帮助
      • Helper 组件示例和代码Snippet
  4. 模块与功能类库
    1. LowoUN框架提供
      1. 两个必要模块
        1. Asset 资源加载模块
        2. Camera 相机模块:为与世界对象关联的屏幕UI(HudUI)提供一个主相机
      2. 若干功能类
        • TimeWatcher 通用计时器,在非MonoBehaviour派生类很好的替代Coroutine
        • Maths 数学公式
        • Extensions 数据结构扩展
        • EnumParse 枚举解析
        • CRC32 哈希key提供
        • DataStruct 自定义通用数据结构,如元组类型
        • NotifyMgr 消息广播
        • Log日志输出
        • Interface 通用接口
    2. 第三方插件
      • Webview,以支持webview类型的组件(嵌入到面板的相应位置并设置显示区域大小)

发布者

Loy Wong

A Programmer.