Unity5.x研究院之UGUI安卓自动ETC1通道分离

http://www.xuanyusong.com/archives/4279

1.升级你的unity到5.5(有可能unity5.4也可以)

2.Sprite必须设置Packing Tag(只有图集才支持)

3.设置所有UI贴图的格式为ETC1(无论透明还是不透明)

4.如下图所示,勾选Compress using ETC1(split alpha channel) (可以写个工具自动批量修改)

Unity3D研究院之UGUI安卓自动ETC1通道分离(九十一) - 雨松MOMO程序研究院 - 2

5.搞定

测试机器是小米pad1,先看看真机上的效果。

Unity3D研究院之UGUI安卓自动ETC1通道分离(九十一) - 雨松MOMO程序研究院 - 3

今天我还发现了另外一个问题,在某些android机器上可能会显示成这样。

Unity3D研究院之UGUI安卓自动ETC1通道分离(九十一) - 雨松MOMO程序研究院 - 4

我第一反应这肯定是unity的bug,我想办法解决了一下。

下载unity5.5的内置shader。有一个叫UI-DefaultETC1的shader拖入工程,在ProjectSetting->GraphicsSettings里添加进去。

Unity3D研究院之UGUI安卓自动ETC1通道分离(九十一) - 雨松MOMO程序研究院 - 5

真机Profiler下,很清楚的看见透明图已经被unity分离了。

Unity3D研究院之UGUI安卓自动ETC1通道分离(九十一) - 雨松MOMO程序研究院 - 6

大家请在看上面的安卓真机Profiler的图。Unity把一张1024X1024的图拆分成 0.5M大小 和1M大小 的两张图, 0.5M 就是ETC1的压缩图, 另外一个1M 我猜就是对应 Alpha  8 格式。 这样就算图片有的透明渐变的效果也会是很好的。 强烈建议大家使用啊~ 如果是1024大小 这样从truecolor的4M减少到现在1.5M 效果还是很可观的。

批量自动设置etc1 + alpha脚本,注意第二个参数传入true就可以

textureImporter.SetPlatformTextureSettings(“Android”,2048,TextureImporterFormat.ETC_RGB4,true);
大家赶紧测试吧。。 有问题欢迎在下面给我留言哈。。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值