CompressedTexture.md 2.8 KB
Newer Older
O
migrate  
oceanxiao 已提交
1 2 3 4
# 压缩纹理使用(Beta)

因为目前Unity导出的WEBGL游戏只支持DXT1和DXT5,在移动端上并不支持,而且除非使用Addressable这种将图片打包出来的手段,否则也会导致包体过大。为了解决这两个问题。我们提供了这个功能,让Unity游戏也能在移动端自动支持ASTC和ETC2的压缩纹理。而且图片也自动做了按需加载,无需再单独拆分打包。

5
`注意:` 使用压缩纹理的图片或者图集,宽高需要为2的幂次,否则不会转化为移动端的压缩纹理。对于需要动态读取图片内容做处理的,目前还不支持将其转为压缩纹理。
O
migrate  
oceanxiao 已提交
6
## 安装ImageMagick
7
下载并安装[ImageMagick](https://imagemagick.org/index.php) window用户安装完后需重启电脑。
O
migrate  
oceanxiao 已提交
8 9 10 11 12 13 14 15 16 17
## Mac上授权
因为Mac上的隐私安全问题,使用mac的用户需要先授权,使用window的用户跳过这步。点击"微信小游戏"->"MacOS脚本授权",进行授权,直到不报错为止。若授权后还是报错,重启unity后再点授权试试。

## 使用Addressable或者AssetBundle的情况
1、首先点击"微信小游戏"->"转换小游戏" 打开转换小游戏弹窗,填入相关的导出配置信息,  
2、点击"微信小游戏"->"压缩纹理"->"替换纹理",用到的纹理图片就会自动替换成占位符,展示位黑色的图片,如果项目用到的图片比较多这一步可能需要花费较长时间,比如10多分钟。  
3、替换完毕后,再导出你的ab包。  
4、在转换小游戏弹窗中点击导出。这里就不需要再勾选压缩纹理替换,否则会重复替换增加导出时间。  
<image src="../image/edwindow.png" width="600"/>  
5、导出后可以使用"微信小游戏"->"压缩纹理"->"恢复纹理"来恢复被替换的纹理图片。  
18 19
这里替换纹理后在导出目录会生成一个Assets目录,需要将该目录放到CDN的对应目录, 其对应的是你填写的"Assets目录对应CDN地址" ,比如你填写的地址为 https://wx.qq.com/data/Assets/ 
,那么小游戏需要展示图片的时候就会自动去该目录下载对应图片。
O
migrate  
oceanxiao 已提交
20 21 22 23 24 25

## 不使用Addressable和AssetBundle的情况
方法一:在转换小游戏弹窗中勾选上压缩纹理替换,然后导出。这种导出每次都会做一次纹理替换,可能花费较长时间。  
方法二:同使用了Addressable的情况,可以先点击"微信小游戏"->"压缩纹理"->"替换纹理",替换纹理图片,再在转换小游戏弹窗中点击导出。这里就不需要再勾选压缩纹理替换,否则会重复替换增加导出时间。

`注意:`"选择图片资源目录"对应的默认为Assets目录,选择更小范围的目录能加快图片替换时间。对于一些不在该目录内的图片,图片format`不能`选择为DTX1和DXT5。