栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

UGUI-- 图集制作

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

UGUI-- 图集制作

1、为什么要打图集

UGUI与NGUI使用上最大的不同是,NGUI使用前就要打图集,UGUI可以在之后再打图集

打图集的目的就是减少DrawCall,提高性能,具体Drawcall是什么取看NGUI。

简单来说,DrawCall(DC)就是CPU通知GPU进行一次渲染的命令,如果DC次数较多会导致游戏卡顿,我们可以通过打图集,将小图合并成大图,将本应n次的DC变成1次DC来提高性能

2、在Unity中打开自带的打图集功能

在工程设置面板中打开功能

Edit->Project Setting->Editor-> Sprite Packer(精灵包装器,可以通过Unity自带图集工具生成图集)

Disabled默认设置,不会打包图集

Enabled For Build

(Legacy Sprite Packer)

Unity仅在构建时打包图集,在编辑模式下不会打包图集

Always Enable

(Legacy Sprite Packer)

Unity在构建时打包图集,在编辑模式下运行前会打包图集
Enabled For BuildUnity在构建时打包图集,在编辑器模式下不会打包
Always EnabledUnity在构建时打包图集,在编辑模式下运行前会打包图集 

Legacy Sprite Packer传统打包模式,相对下面两种模式来说,多了一个设置图片之间的间隔距离,有一个参数:

——Padding Power:选择打包算法在计算打包的精灵之间以及精灵和生成的图集边缘之间的间隔距离,这里的数字代表2的n次方

但是在新版的Unity中,相关设置不同,分别是:

  • Sprite Atlas V1- Enabled For Builds;
  • Sprite Atlas V1- Always Enabled;
  • Sprite Atlas V2(Experimental) Enabled;
3、打图集参数注意

图集创建:新建Sprite Atlas(新的版本在2D子目录中)

在UI中如果需要打图集,一般需要将Allow Rotation与Tight Packing勾选去掉

然后在Objects for Packing中将需要打包的图集进行关联,Pack Preview,之后每次加载新图片都从图集中批处理一次性加载,减少DC次数,否则每次加载新图片都要DC(重复的图片不会增加DC次数)

注意:如果在相同图集的关联图片之间插入一个不同图集中的图片/Text(即在Hierarchy中相邻顺序的图集元素之间插入,例如A,B,C在同一图集,D插入B,C之间)并且与图集中的相应图片重叠(D与C重叠),那么图集的批处理会中断,打断渲染顺序,增加DC次数。

创建图集后只有在运行模式中才会生效,在编辑模式中Batches和以前不会有任何变化

如何观察DC的次数:

Game窗口的Stats->Batches

4、代码加载
// 加载图集,参数为图集名
SpriteAtlas sa = Resources.Load("myAtlas");    
// 从图集中加载指定名称的小图,可以为某些Image赋值加载
sa.GetSprite("bk");     
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901842.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号