BandMan home

UI工具库(游戏开发)

UnityUIExtensions

新增UI组件:

Effect 组件

Additional 组件

Doozy UI

FairyGUI

该库有着自己的独立编辑器。

IMGUI与QT

它们中的大多数是自定义小部件,或也非常特定于引擎的数据视图。 Qt 中的自定义小部件很快变得非常复杂。 如果数据是树/列表,您可以使用 QTreeView 创建delegate、hook、signal等。但是当它变得非常复杂时,您必须将其呈现为 QScrollArea 或 QPixmap。

IMGUI 中自定义小部件的代码具有硬件加速功能,您无需逐像素绘制和逐块绘制。 使用 IMGUI 执行此操作的代码要简单得多,并且对于任何从事游戏工作的人来说都非常熟悉。 为了说明这一点,这里是用 Qt qhexedit2、QHexEdit 编写的十六进制编辑器小部件,有数百万个用 Qt 编写的十六进制编辑器,您可以搜索它。

IMGUI 小部件是高度交互的,每帧都可以更新一切,对于传统的 UI 框架,这可能会带来巨大的性能损失,因为它是更传统的静态 UI 解决方案。

由于IMGUI已经在引擎里了,无需弄清楚如何在您的引擎正在使用的渲染器和框架的渲染 API 在下面使用的渲染器之间进行互操作。

渲染系统与GUI系统的区别

问题1:?数据驱动、技能处理与xml数据与模板方法模式

回答:用配置表配置的技能,里面包含的是有规律的数据,故需要模板方法来处理这个重复的问题。

问题2:UI框架

回答:了解认识fairyGUI

问题3:UI的逻辑与显示分层(子窗口、兄弟窗口、MVC)

回答:这种设计可以耦合性很低,管理起资源呢?

问题4:写UI的上面这些经验(以前写载具、地图界面的写法——对象之间的消息传递)与游戏开发的工具流的相似点

回答:当时知道属性可以用来传信息、还有自定义方法

问题5:有限状态机与游戏的联系,全流程工具链制作? 问题6:设计时要选用的模型、面对数学问题时要选用的模型 问题7:内存管理与上面的问题主题的联系 问题8:继承的出现是偷懒的结果 问题9:数据驱动的编程方式是什么?优点是什么?

回答:当转换思维方式之后,组件、事件、逻辑处理、样式都是一份数据,我们只需要把数据的状态和转换设计好,剩下的实现则由具现方式(模版引擎、事件机制等)来实现。

将重复的编程构造分解为数据和转换模式。当以这种方式使用时,这种新数据通常被纯粹主义者称为元数据。

Reference: https://blog.codingnow.com/2020/07/game_ui.html

Fork me on GitHub