发布时间:2026-02-18
浏览次数:0
UGUI太老,UI 还不行,现在做UI到底听谁的。
近来帮友人修理一个存在卡顿现象的登录界面,发觉单单是滚动列表这一操作,便占据了30%的帧率。经过一番查找,原来是其所使用的那号称“高性能”的插件,在底层还暗中进行调用。在Unity 2023.3往后,只要一调用这东西就会卡顿半秒。并非是插件不行,而是它根本就没能跟上Unity最新的渲染调度机制。我翻阅了官方论坛,好几个用户都贴出了截图,问题完全一样,可就是没人讲清楚是为何——这是由于大家仅仅只是看星星数,却没人真正去跑一遍Frame。
当前已然并非是能够进行选择的项目了。我创建了一个二零二三年四月的项目,将TMP删除,连接时却会出现报错:。它早就不单单只是一个字体插件层面的事物了,而是整个UGUI文本链的位于底层的依赖关系。原生的Text组件还能够被点选出来,然而一旦开启,内存便会急剧增长,垃圾回收操作频繁发生,通过实际测试可知在滑动列表的时候每秒会触发四次垃圾回收。后来更换为专门用于制作图标,帧率直接就稳定下来了,代码也并没有多写出几行。
现今动效不再依赖协程,而是改用Unity自身的主线程调度器。我曾尝试在其中连续发动10个缩放动画,结果没有一帧出现掉落情况,内存也未增长。然而,它绝对不能放置到OnGUI里面,我因手滑进行了一次尝试,界面瞬间模糊成马赛克——并非动画存在问题,而是IMGUI的立即渲染模式与延迟执行发生了冲突,官方文档里用小字注明了“不支持”,但众多人并未留意。
当前呈现犹如一位已退休的老员工那般的状态,既不会招来新的漏洞,也不会去开展新的工作任务。其最后一次版本更新的时间为2023年12月,仅仅修复了为数不多的几个缩放出现失真的问题。我们所在的小组依旧在使用它,原因在于老项目难以进行改动,然而新的模块绝对不会再接入它。有一位同事打算运用它的增强功能来制作排行榜,结果当列表超过500项时,滑动就会出现掉帧的情况。后来经过发现,它并没有实施真正的虚拟化操作,只是将看不见的项目设置成,重新构建时依旧像往常一样运行,全然没有起到作用。
倒是挺新的,3.0版本现在能够和UI绑定在一起使用了,然而存在的问题也不少。我们尝试测试热更文字资源,在iOS系统上进行签名时始终无法通过,折腾了两天时间才发现需要手动添加一个东西,而这个东西在文档里藏于FAQ第五页的下方位置。还有其他人反馈说在HDRP模式下按钮颜色呈现发灰的情况,经过查询相关Issue才明白原来是材质使用了旧版Lit,作者表示“优先适配URP”,HDRP模式下的用户需要自行修改。
列表卡,大概十有八九是惹出来的祸端。它每一次内容出现变化时,都会强制性地重新计算整个布局,要是有1000个条目,那就相当于进行1000次计算。后来更换了一个叫做的小物件,它并不是特别有名气,Star数量才800多,然而它使用预加载3个Item,在滑动的时候直接进行复用,计算次数从每秒20多次减小到1次。那个我没敢去使用,它采用(false)来隐藏条目,可是批次依旧全部存在,结果白忙活一场。
多语言最让人头疼的并非是翻译,而是字体,中日韩字体一旦加载,内存便会直接上涨30MB,有一个接口intellij idea logo,它能算出每个字的真实行高,我们编写了二十行脚本,是自动调整的,此后便没有再出现换行错位,那个多语言模块看起来省事,然而资源全都打在一个包里,热更的时候整包要重新下载,用户的流量承受不住。
对于长按检测这个事情,真的是准确无误,我通过实际测量验证过其误差在±3ms 以内,相较于自己去编写代码要可靠得多。在 UI 方面,不要去寻找插件,直接运用它,它自身带有相关的和事件,而且具备防抖功能,其写法比 UGUI 还要简洁明了。
此刻基本上是废掉了,它依靠修改alpha,然而UI当中并不存在,要是强行添加就会导致崩溃,倘若真的要使用提示框,那就规规矩矩地去用。
..()配动画,三行代码,不依赖任何插件。
那个被称作“轻量”的,最后提交时间是2022年。我们将其运用在2023.4的项目里,下拉遮罩居然直接不显示了,经过一番查找,发现Mask组件被更换过,它原来的逻辑根本没有适配。在Unity Forum里有人贴出了补丁,然而需要手动修改源码,一旦升级Unity版本就必须重新来过。
所有靠
该做布局的库chors,当前均存在问题,Unity 2023.3更改了重绘触发逻辑,一旦调用这行代码,整块UI便会重绘,无论有无变化,官方Issue编号已获确认,然而却无人进行修复intellij idea logo,究竟有何解决办法,UI的Flex布局,无需计算尺寸,依靠约束推导,反倒更为稳定。
选择UI组件时,首先得瞧瞧自己所使用的究竟是UGUI还是UI ,一旦这一点确定下来,那么80%的库便直接被排除在外。接着要仔细想明白,当下卡顿究竟出在何处——究竟是文字显示模糊不清,还是列表滑动不畅无法动弹。又或者是点击之后毫无反应情况,最后务必查看最近一次的提交时间,瞅瞅CI是否呈现绿色状态,再看看Unity版本标签是否已经更新至2023.4或者2024.1 ,千万别轻信里面所写的“支持最新版”表述。
我删除了,具备相当水准的高星插件数量为三个,更换了,自认为特别炫酷的动效方案数量是两个,如今,用户界面运行得比以往更加顺畅,代码行数减少了四百行。
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码