unity针对Android平台还提供了通道分离的方式:将图片(sprite)压缩成ETC1,提取Alpha生成一张通道图。unity将通道图保存的格式为a8格式,目的为了让混合起来的Alpha效果很好。比如一张1024*1024的贴图,ETC1压缩格式为0.5M,a8格式的通道图压缩结果为1M,加起来是1.5M。
图1-1,在贴图面板中勾选Override for Android , Format格式选为RGB Compressed ETC4 bits, 勾选 Split Alpha Channel。
图 1- 1 通道拆分设置
图1-2 ,在Project Setting —Graphics 中 Always Included Shaders 中添加 UI/DefaultETC1.shader.
图1-3,运行游戏真机Profiler查看,可以看出使用的图集已经拆除了通道图。
如何批量自动设置呢?如下代码示例:
//设置Android平台通道分离 TextureImporterPlatformSettings settings = new TextureImporterPlatformSettings(); settings.overridden = true; settings.name = "Android"; settings.format = TextureImporterFormat.ETC_RGB4; settings.allowsAlphaSplitting = true; textureImporter.SetPlatformTextureSettings(settings);