如何快速高效地完成UI界面设计?这五种主要的解决方案你应该知道
ccwgpt 2024-11-06 09:43 44 浏览 0 评论
编者按 在游戏制作时,UI界面设计是非常重要的工作,不仅仅是考虑排版布局、美术风格,还要考虑到玩家的交互行为。另外,采取哪种实现方案也是需要慎重考虑的,一个好方案让我们在保质保量的前提下,能快速高效地完成。笔者将为大家介绍业界常用的UI解决方案,并对它们做简单地分析对比。同时,也欢迎大家留言,分享你在UI设计时所积累的经验,或是遇到的困难,咱们共同成长进步。
作者:W
笔者自14年毕业参加工作以来,一直使用Unity引擎来开发各种项目,如儿童启蒙教育类绘本、大型3D网络海战、三消、视频VR以及NBA体育竞技等,大部分工作内容是与UI界面相关。使用过的UI系统插件包括Unity原始的GUI、第3方插件NGUI、Unity进阶版的UGUI以及第3方的UI编辑器FairyGUI。另外,经网上了解还有EZ GUI、IGUI等第3方插件,以及Unity近推出的高阶版UIToolkit。这些偏冷门的或者新出炉的,笔者暂没在公司项目中使用过。你知道的,公司项目对稳定性有较高的要求,不会一味地追求新技术。读者不用惊讶,有公司还在使用Unity 4.x或者5.x旧版本的呢,哈哈!
经过前面介绍,这么多种实现方案,我们在实际项目中应该如何做选择呢?有木有最佳方案?通吃的那种?答案是否定的。每种方案都有其适用性,需要结合项目本身以及开发者自身情况综合来考量。那在选择方案时,有木有一些具体的参考点呢?这个是有的,笔者归结为以下2点:
1)可视化程度:Unity原始的UI系统,需要在运行时才能显示,这给我们搭建UI界面时带来很多不便。正因为此,许多像NGUI一样的高度可视化的插件陆续诞生。搭建UI界面时,只需将对应组件拖入场景即可显示和调整,达到所见即所得的目的。另外,像是否支持图文混排、虚拟列表等组件以及对策划美术是否友好等问题,也都可以归结为插件的可视化程度高不高的体现。
2)性能:DrawCall,每次CPU准备数据并通知GPU的过程。这个操作是比较好性能的,原则上我们是希望它越少越好的。影响它的因素:一方面表现为UI资源的管理方式,这主要与程序猿技术能力有关,知道啥时候加载,又啥时候卸载,什么类型资源共享,什么类型资源进行九宫格。另一方面表现为与UI系统本身的渲染原理相关,这是UI方案的“硬伤”,关于UI方案的硬伤,对于熟知该UI渲染原理的程序猿来说,他知道该怎么去做,一定程度“规避”产生太多DrawCall。嘻嘻,这很考验咱程序猿功底咯!如果UI方案本身这方面就做的很好,那岂不是更好,哈哈。
限于篇幅,我不能对这些UI方案深入展开,希望简短的介绍能讲清楚它们各自特点。至于具体怎么使用,我会附上官网或学习地址,那里通常配有技术文档、教程帮助上手。
2.1 Unity原始GUI
因性能和可视化方面都不足,自打好用的如NGUI等第3方插件问世后,Unity的原始GUI系统,基本不会用于游戏运行模式时的UI设计中;一般只是在编辑器工具扩展时使用。但现如今Unity又推出新的UIElement框架,可用于编辑器工具的扩展,原生GUI系统会越来越失宠,究其最终原因就是性能差且不好用。目前来看,原始GUI在编辑器工具扩展领域的地位应该不太可能迅速被UIElement取代,因为扩展工具时,原始GUI还是可以胜任的,且很多开发者应该已经习惯用它来编写工具和扩展。其实,程序猿也是有情怀的,哈哈!
2.2 NGUI
资源地址:https://assetstore.unity.com/packages/tools/gui/ngui-next-gen-ui-2413#description
其特点如下:
1) 图集:需要自己规划好后,手动打开图集。
2) 渲染原理:先根据Panel的Depth排序,Panel面板内部再根据Depth排序。将相同材质的Widget进行Mesh合并。
3) 支持图文混排。
4) 支持循环列表组件。
2.3 Unity进阶版UGUI
学习地址:http://c.biancheng.net/view/2712.html
UGUI是在NGUI之后Unity官方推出的,一定程度上借鉴了NGUI的设计理念,在某些方面做了改进优化,如自适应、图集等。其特点如下:
1)图集:图集概念不重,会自动打包成图集。要注意的是,放在Resources文件夹下的贴图不会被打入图集;
2)渲染原理:根据Hierarchy的顺序来排序,越下面渲染在越顶层。Canvas与NGUI的UIPanel类似,每个Canvas将优化合并为1个Mesh或多个SubMesh;
3)不支持图文混排,需要自己实现;
4)不支持循环列表组件,需要自己实现;
5)有锚点,方便屏幕自适应。
2.4 FairyGUI
官网地址:https://www.fairygui.com/download
它是独立的UI编辑器,且对美术、策划都友好。其特点如下:
1)目前主流的游戏开发引擎都支持;
2)渲染原理:没有采取Mesh合并的策略,而是基于类似于Unity的Dynamic Batching技术,对DrawCall进行优化。它在不改变显示效果的前提下,尽可能的把相同材质的物体调整到连续的RenderingOrder值上,以促使它们能够被Unity DynamicBatching优化;
3)支持图文混排;
4)支持虚拟列表,即使数量巨大的列表也不会感觉太卡顿。
2.5 其他方案
因为笔者未在实际项目中使用过,所以这里不做评述了,读者可以根据贴出的链接跳转过去瞅一瞅哈!
1)Unity高阶版UIToolkit
学习地址:https://docs.unity3d.com/cn/2020.1/Manual/UIElements.html
是Unity新推出的新一代UI系统,既支持游戏编辑模式也支持运行时模式。但目前还不够完善。读者可以尝尝鲜,试用一下。
2)EZGUI
资源地址:https://assetstore.unity.com/packages/tools/ez-gui-32
【注:官方资源下架 已购买可以继续使用】
3)IGUI
资源地址:https://assetstore.unity.com/packages/tools/gui/igui-basic-1946
【注:官方资源下架 已购买可以继续使用】
本篇主要介绍了Unity项目比较流行的UI解决方案,笔者在这里只是做一个汇总概述,并没有去深究。至于读者该如何选择,仁者见仁,智者见智。一句话总结:没有最好的,只有最适合的!
参考资料
1、Unity官网:https://unity.cn/
2、Siki学院:http://www.sikiedu.com/course/explore/unity?subCategory=&selectedthirdLevelCategory=&filter%5Btype%5D=all&filter%5Bprice%5D=all&filter%5BcurrentLevelId%5D=all&orderBy=hotSeq&from_flag=baidu_unity
相关推荐
- 一个基于.Net Core遵循Clean Architecture原则开源架构
-
今天给大家推荐一个遵循CleanArchitecture原则开源架构。项目简介这是基于Asp.netCore6开发的,遵循CleanArchitecture原则,可以高效、快速地构建基于Ra...
- AI写代码翻车无数次,我发现只要提前做好这3步,bug立减80%
-
写十万行全是bug之后终于找到方法了开发"提示词管理助手"新版本那会儿,我差点被bug整崩溃。刚开始两周,全靠AI改代码架构,结果十万行程序漏洞百出。本来以为AI说没问题就稳了,结果...
- OneCode低代码平台的事件驱动设计:架构解析与实践
-
引言:低代码平台的事件驱动范式在现代软件开发中,事件驱动架构(EDA)已成为构建灵活、松耦合系统的核心范式。OneCode低代码平台通过创新性的注解驱动设计,将事件驱动理念深度融入平台架构,实现了业务...
- 国内大厂AI插件评测:根据UI图生成Vue前端代码
-
在IDEA中安装大厂的AI插件,打开ruoyi增强项目:yudao-ui-admin-vue31.CodeBuddy插件登录腾讯的CodeBuddy后,大模型选择deepseek-v3,输入提示语:...
- AI+低代码技术揭秘(二):核心架构
-
本文档介绍了为VTJ低代码平台提供支持的基本架构组件,包括Engine编排层、Provider服务系统、数据模型和代码生成管道。有关UI组件库和widget系统的信息,请参阅UI...
- GitDiagram用AI把代码库变成可视化架构图
-
这是一个名为gitdiagram的开源工具,可将GitHub仓库实时转换为交互式架构图,帮助开发者快速理解代码结构。核心功能一键可视化:替换GitHubURL中的"hub...
- 30天自制操作系统:第六天:代码架构整理与中断处理
-
1.拆开bootpack.c文件。根据设计模式将对应的功能封装成独立的文件。2.初始化pic:pic(可编程中断控制器):在设计上,cpu单独只能处理一个中断。而pic是将8个中断信号集合成一个中断...
- AI写代码越帮越忙?2025年研究揭露惊人真相
-
近年来,AI工具如雨后春笋般涌现,许多人开始幻想程序员的未来就是“对着AI说几句话”,就能轻松写出完美的代码。然而,2025年的一项最新研究却颠覆了这一期待,揭示了一个令人意外的结果。研究邀请了16位...
- 一键理解开源项目:两个自动生成GitHub代码架构图与说明书工具
-
一、GitDiagram可以一键生成github代码仓库的架构图如果想要可视化github开源项目:https://github.com/luler/reflex_ai_fast,也可以直接把域名替换...
- 5分钟掌握 c# 网络通讯架构及代码示例
-
以下是C#网络通讯架构的核心要点及代码示例,按协议类型分类整理:一、TCP协议(可靠连接)1.同步通信//服务器端usingSystem.Net.Sockets;usingTcpListene...
- 从复杂到优雅:用建造者和责任链重塑代码架构
-
引用设计模式是软件开发中的重要工具,它为解决常见问题提供了标准化的解决方案,提高了代码的可维护性和可扩展性,提升了开发效率,促进了团队协作,提高了软件质量,并帮助开发者更好地适应需求变化。通过学习和应...
- 低代码开发当道,我还需要学习LangChain这些框架吗?| IT杂谈
-
专注LLM深度应用,关注我不迷路前两天有位兄弟问了个问题:当然我很能理解这位朋友的担忧:期望效率最大化,时间用在刀刃上,“不要重新发明轮子”嘛。铺天盖地的AI信息轰炸与概念炒作,很容易让人浮躁与迷茫。...
- 框架设计并不是简单粗暴地写代码,而是要先弄清逻辑
-
3.框架设计3.框架设计本节我们要开发一个UI框架,底层以白鹭引擎为例。框架设计的第一步并不是直接撸代码,而是先想清楚设计思想,抽象。一个一个的UI窗口是独立的吗?不是的,...
- 大佬用 Avalonia 框架开发的 C# 代码 IDE
-
AvalonStudioAvalonStudio是一个开源的跨平台的开发编辑器(IDE),AvalonStudio的目标是成为一个功能齐全,并且可以让开发者快速使用的IDE,提高开发的生产力。A...
- 轻量级框架Lagent 仅需20行代码即可构建自己的智能代理
-
站长之家(ChinaZ.com)8月30日消息:Lagent是一个专注于基于LLM模型的代理开发的轻量级框架。它的设计旨在简化和提高这种模型下代理的开发效率。LLM模型是一种强大的工具,可以...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- mfc框架 (52)
- abb框架断路器 (48)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- orm框架有哪些 (51)
- 知识框架图 (52)
- ppt框架 (55)
- 框架图模板 (59)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)