UGUI之坑点小结

本文总结了Unity UI(UGUI)开发过程中遇到的各种显示刷新和图集打包问题,并提供了详细的处理方法。针对UGUI刷新异常、图集打包不合理等问题,提出了有效的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下是我总结断断续续遇到的一些UGUI上的问题,有机会能改则改,改不了的只能想办法注意和避免了。

UGUI刷新问题

场景中没有遮挡的背景时,首次打开UI 手机上不停闪烁或各种花屏问题:
处理办法:

场景中最好加一个物体遮挡,如进游戏底部加一块纯黑板背景,可以避免UI闪烁

其实是canvas相机照不到东西的时候,UGUI的显示不会及时刷新,比如把canvas中最后一个active的对象都隐藏的话,显示上会不刷新,即使拿到的属性activeself其实是false。即看到显示残留

如果父对象下面挂了几个子对象a,b,c,d,如果删除了其中部分子对象 如a,想立即修改bcd的先后层次的话,用SetSiblingIndex()方式就可能出问题,即出现 数值刷新了,但显示未刷新的问题。
解决办法:

因此对于兄弟节点出生销毁后同帧立即调整当前节点层级的话,最好通过transform.SetAsFirstSibling();或transform.SetAsLastSibling();来实现层级调整

UGUI的图集问题
1. UGUI的图集打包算法有问题,基本表现是它一定把不同实际压缩格式的小图放在了不同的group。比如有两个小图,用了不同的压缩格式,他们最终会在两个group图,导致一个图集扩成了两张;
2. 带透明通道和不带透明通道的素材也会被分在两个group!!坑的地方来了,使得如果众多素材中有几个不带透明通道的,那么你把那些透明素材压缩到死,也不会将非透明通道图合并到当前图集来,(因为是带和不带透明通道的两种图本身就会以两种压缩格式来处理))
3. 呵呵mitmap有或没有也会被拆分到两个group里;

解决办法,几个都要保证:
  1. 同一个图集统一压缩格式;
  2. 在素材上,同一个图集中的所有素材都应该是带透明像素的,或者统一不带透明像素,遇到透明图集出现个别不包含透明像素的,去PS给将这个图其中一像素修改为有透明度就OK(如透明度99%);
  3. 想要使用UGUI默认的ETC压缩的话,单张图应该宽和高尺寸都能被4整除。否则的话,该单独素材会以RGB32压缩格式处理;

因此,如图中,所有标黄的地方,即便你填了相同的Packing Tag,但黄色设置有一项不一致,最终这批图不会出现在同一个图集中的

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值