网易首页 > 网易号 > 正文 申请入驻

【厚积薄发】FairyGUI图标文字合批失败的原因

0
分享至

这是第428篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

UWA社区主页:community.uwa4d.com

本期目录:

  • FairyGUI图标文字合批失败的原因
  • 为什么Cubemap的内存占用超高
  • 如何找到网格某个切面的中心点
  • 为什么SafeZone在倒屏后方向相反

UI

Q1:项目现在使用的是FairyGUI,界面中会有一排类似下图的比较常见的组合按钮(图+特效+文字)。

在FrameDebugger中注意到这部分的DrawCall情况有点惨;老项目用UGUI+TMP作类似的UI应该是没有问题都能合的。父节点FairyBatching是勾了的,图集是合好了的,图和图、文字和文字之间应该也没有互相遮挡覆盖;考虑到可能是特效穿插的问题,所以运行调试时直接把特效的节点删掉了,还是不行。请问还有什么思路?

A:遇到过类似的问题。首先FairyGUI的结构在导出后应该就是固定的了,有可能你运行时做了修改删掉改掉某些东西,但原来的区域规格和UI元素仍然占位。所以这里删特效、对TextField覆盖面积的调试检查,可能都得请UI同学帮忙,回到FairyGUI编辑器阶段处理和检查,再重新导出看效果。

Q2:操作了下,确实有变化。但现在又有两个新问题:

1. 确实导出前就把特效移除有效果,但图和文字中夹着特效是表现需要,最终不大可能删,这个是不是就没什么办法了?

2. 就算移除了特效,还是发现只有图和图之间合了,文字之间仍然不合。而且这次是确认了TextField之间也没有重叠。这时候看FrameDebugger合批失败原因变成了超过300个顶点不能动态合批。请问这个怎么解决呢?

A: 第一个确实想不到什么办法了。第二个就像FrameDebugger写的一样,你若是用了Shadow、Outline这种效果,文字的顶点就会成倍上升,再加上你字一多,就会超了。不过如果你这些表现上都要用的话,也和特效一样没什么办法了。

感谢Faust@UWA问答社区提供了回答,欢迎大家转至社区交流

https://answer.uwa4d.com/question/67fcc756682c7e5cd61bfa57

Memory

Q:在MemoryProfiler里发现Graphics分类下面Cubemap的内存占用有40多MB,比我们项目用的网格都多,这个量正常吗?

A: 确实高了,尤其移动端游戏很少有必要用这么多。可以看下是不是有些Cubemap单个就占好几MB。一个Cubemap本质是6张Texture 2D,所以一个1024*1024、ASTC4*4格式的资源就占6MB内存了。但其实我测下来其规格对表现的影响很微妙,像我们项目里有些物体上把Cubemap改到128*128、ASTC8*8看上去都没什么区别,但内存就小到可以忽视。最终也是说服美术在低分档上用这版了。

感谢Faust@UWA问答社区提供了回答,欢迎大家转至社区交流

https://answer.uwa4d.com/question/67fcd15d3d306f3e9d594ec4

Script

Q:我想要找到一个网格中某个切面的中心点,有什么实现的思路吗?

A:提供一种追踪的方式,大致思路是:

  • 通过Get Component Bounds得到网格包围球的半径,乘二以保证追踪起点足够远,得到追踪的半径(Float)。

  • 在For Loop中配合Rotate Vector Around Aixs和追踪半径来得到足够多的追踪点(Float→Vector),它们是LineTrace的起点。

  • 再找到追踪的终点,就可开始Line Trace(起点和终点还要加上Actor自身的Location,相当于Local→World)。

  • 返回的Out Hit中拿到Location便可加到一个新的Vector Array中(这个要是局部变量,这样每帧得到的都是新的)。

  • 在For Loop的Completed阶段用Draw Debug String来显示内容(也可以别的类型),输出一个白色的x,位置为Get Vector Array Average,即该切面的中心点。

蓝图如下:

进阶版:若希望这个切面不只是水平面,还可以换成其它角度。加一个Plane进来,蓝图如下这样改,旋转Plane即可调整切面的角度(理论上还可以继续优化,因为没把Plane的位移算进去)。

蓝图如下:

该回答由UWA提供,欢迎大家转至社区交流

https://answer.uwa4d.com/question/67fc7dac3d306f3e9d594ebf

Script

Q:在左右横屏切换之后,原本设置的安全区位置出现了错位,请问是什么原因呢?

A:该现象确认为UE的Bug,已在5.2中解决,可参考:

Unreal Engine Issues and Bug Tracker (UE-170632)


https://issues.unrealengine.com/issue/UE-170632

之前版本不修改源码解决该问题的方法:在屏幕旋转时,手动触发安全区更新。

实现的关键点包括:

  • 安全区更新。可以通过全局代理触发:


  • 获取屏幕旋转事件。屏幕旋转时会触发代理广播,因此可以将相应函数绑定至该代理:


另外,对于移动平台,可以直接使用PlatfromGameInstance提供的委托,在蓝图中绑定相应事件:

自己的GI类中可以做类似的实现:

基于以上关键点,项目组可根据自身项目需求进行实现。

实现参考:

1. 创建PlaftormGameInstance,并替换为项目使用的GI。

2. 创建UBlueprintFunctionLibrary类,并在其中实现函数,该函数用来触发FCoreDelegates::OnSafeFrameChangedEvent.Broadcast()。

3. 在UI中,实现以下蓝图,注意其中对函数库中更新函数的调用需要延迟调用。

针对该Bug的源码变化:

5.2版本源码中的修改:

5.2版本之前:

该回答由UWA提供欢迎大家转至社区交流

https://answer.uwa4d.com/question/67fc7e5a3d306f3e9d594ec0

封面图来源于网络

今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com

UWA社区:community.uwa4d.com

UWA学堂:edu.uwa4d.com

点击下方名片关注我们,将我设为星标,及时接收小编每日推送哦,性能优化不迷路~

近期精彩回顾

绕过新手陷阱,用Unity思维玩转UE5

【厚积薄发】UE纹理设置详解与优化指南

【万象更新】特效的GPU压力该如何解决?

【学堂上新】从零打造Unity 3D资源管理与全热更框架!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
反常一幕出现!中国已断供日本稀土4个月,日本没崩,藏了一手?

反常一幕出现!中国已断供日本稀土4个月,日本没崩,藏了一手?

轩逸阿II
2026-05-26 09:26:43
职业生涯法网首胜!吴易昺三盘横扫过关,下轮将战10号种子

职业生涯法网首胜!吴易昺三盘横扫过关,下轮将战10号种子

全景体育V
2026-05-26 05:16:53
基恩暗讽B费是“蠢驴”,曼联名宿与曼联队长的口水战持续升级

基恩暗讽B费是“蠢驴”,曼联名宿与曼联队长的口水战持续升级

夜白侃球
2026-05-26 10:17:40
离大谱了!女子去参加泳渡赛,隐私照片竟被直播,1万多人看了!

离大谱了!女子去参加泳渡赛,隐私照片竟被直播,1万多人看了!

川渝视觉
2026-05-25 22:40:13
12轮不败的蓉城,赛前干了一件“蠢事”:请主力吃饭,让替补看着

12轮不败的蓉城,赛前干了一件“蠢事”:请主力吃饭,让替补看着

酷侃体坛
2026-05-25 16:41:23
终于有人说实话了!山西爆炸煤矿是如何躲避监管?有人一针见血

终于有人说实话了!山西爆炸煤矿是如何躲避监管?有人一针见血

Mr王的饭后茶
2026-05-25 22:41:37
鹅蛋被关注!医生发现:吃得越多,肌少症老年人肌肉流失或越慢?

鹅蛋被关注!医生发现:吃得越多,肌少症老年人肌肉流失或越慢?

徐医生健康讲坛
2026-05-26 08:42:13
两张球票59.5万美金!尼克斯杀疯了,这才是NBA最顶级的吸金豪门

两张球票59.5万美金!尼克斯杀疯了,这才是NBA最顶级的吸金豪门

篮球神吐槽
2026-05-26 09:11:24
B费:我找索帅要了基恩的电话,我不喜欢他歪曲我的言论

B费:我找索帅要了基恩的电话,我不喜欢他歪曲我的言论

懂球帝
2026-05-25 22:03:20
沙利文万字长文承认:面对中国,我们确实错了!

沙利文万字长文承认:面对中国,我们确实错了!

浪子的烟火人间
2026-05-26 01:30:03
孙颖莎世界第一不保!1人或要取代,如今距离已经很近了

孙颖莎世界第一不保!1人或要取代,如今距离已经很近了

酷侃体坛
2026-05-25 16:42:37
固态电池神话破灭?中科院连发“王炸”,2026电池江湖彻底变天!

固态电池神话破灭?中科院连发“王炸”,2026电池江湖彻底变天!

Thurman在昆明
2026-05-26 06:47:13
数万人涌上塞尔维亚首都街头,人在中国的武契奇,早就留好了布局

数万人涌上塞尔维亚首都街头,人在中国的武契奇,早就留好了布局

用冷眼洞悉世界
2026-05-26 10:01:33
上海出租车的“病”,得用“丢饭碗”的药来治

上海出租车的“病”,得用“丢饭碗”的药来治

鲁先生的笔
2026-05-25 21:31:56
王鹤棣迎全网骂潮,只因他踩中了大众最讨厌的三个雷区!

王鹤棣迎全网骂潮,只因他踩中了大众最讨厌的三个雷区!

一盅情怀
2026-05-25 09:24:35
为死难学生复仇!俄榛树连夜砸向基辅,泽连斯基:你们简直疯了

为死难学生复仇!俄榛树连夜砸向基辅,泽连斯基:你们简直疯了

小莜读史
2026-05-26 01:35:34
记者:由于美国拒绝接待,伊朗被迫将大本营设在墨西哥

记者:由于美国拒绝接待,伊朗被迫将大本营设在墨西哥

懂球帝
2026-05-26 07:14:05
不要错过!5月25日晚上19:30比赛!中央5套CCTV5、CCTV5+直播表

不要错过!5月25日晚上19:30比赛!中央5套CCTV5、CCTV5+直播表

林子说事
2026-05-25 15:56:00
港籍航天员黎家盈太空首夜引发争议

港籍航天员黎家盈太空首夜引发争议

阿嬍体育评论
2026-05-26 07:33:32
回国后我才敢说:俄罗斯小孩看中国人的眼神,和老人态度截然不同

回国后我才敢说:俄罗斯小孩看中国人的眼神,和老人态度截然不同

复转这些年
2026-05-24 16:38:35
2026-05-26 10:52:49
侑虎科技UWA incentive-icons
侑虎科技UWA
游戏/VR性能优化平台
1578文章数 987关注度
往期回顾 全部

科技要闻

今年秋季,麒麟芯片将首次落地"逻辑折叠"

头条要闻

多所高校学者被举报涉嫌学术不端:论文数据荒诞粗糙

头条要闻

多所高校学者被举报涉嫌学术不端:论文数据荒诞粗糙

体育要闻

如果不好好守门,他可能早就继承家业了

娱乐要闻

景甜被曝停工失联 富商索要2亿和解费

财经要闻

走近何庭波

汽车要闻

启境GT7定档5月29日预售 提供三电机版本

态度原创

时尚
游戏
艺术
数码
本地

彩色衬衫太适合夏天了,高级又气质

PS发布会夏日游戏节猛料已有?舅舅暗示业内讨论激烈

艺术要闻

毛主席“寿”字气韵更胜四大家,江湖丑书凭何登堂入室中书协?

数码要闻

消息称苹果升级M6 MacBook Pro为主动均热板散热设计

本地新闻

用云锦的方式,打开江苏南京

无障碍浏览 进入关怀版