第1个回答 2024-08-16
首先贴上纹理贴图参数的设置说明
慢慢:小游戏包体缩减 上一篇小游戏包体缩减方案
Unity3D导入纹理参数设置详解
1.1 纹理格式 Texture Type
贴图导入后,需要设定纹理格式。例如,法线贴图应设为Normal map类型,UI则设为Sprite (2D and UI)类型。
1.2 纹理形状 Texture Shape
除了立方体纹理选择Cube外,其他情况应选择2D。
1.3 非2的整数幂 Non Power of 2
高级设置中,非2的整数幂的下拉框用于选择是否允许Unity3D对宽高均为2的整数幂的纹理进行压缩。若纹理尺寸不是2的整数幂,Unity3D将提示压缩限制。例如,导入1005*1200的图片,选择None则无法压缩,占用4.6M内存。选择ToNearset,Unity3D自动调整为1024*1024,压缩后内存降至0.7MB,节省3.9MB。
1.4 读写使能 Read/Write Enabled
是否允许通过代码修改纹理颜色。选中后,运行时将额外占用两倍内存。一般情况下应禁用此选项。
1.5 生成多级渐远纹理 Generate Mip Maps
多级渐远纹理(Mip Map)用于在不同距离下提供适当细节的纹理,避免浪费。勾选此选项后,纹理占用内存增加约1.3倍。
UI不应勾选,因为它一直在视图最前面,无需考虑距离变化。
1.6 各平台设置
贴图导入后自动设置压缩格式,根据是否有透明通道调整。
Android:不带透明通道压缩成ETC1,带透明通道压缩成ETC2,非2的整数次幂回退到RGBA32。
IOS: 不带透明通道压缩成RGB PVRTC,带透明通道压缩成RGBA PVRTC,非2的整数次幂回退到RGBA32。
贴图拖入时,Unity默认设置ToNerest,确保Android和IOS平台下的图片分别被4整除和是2的整除次幂,以获得最佳压缩效果。
可选择ASTC格式,适应2的幂次方长宽等比尺寸和NPOT纹理。
1.7 ASTC解决方案
ASTC是一种业界领先的纹理压缩格式,支持RGBA,适用于2的幂次方尺寸和NPOT纹理。通过设置移动端格式为ASTC,可提高性能和节省内存。
1.8 适应机型
苹果从A8处理器开始支持ASTC,2014年iPhone 5s及iPad mini 3以前的设备不支持。
安卓主流压缩格式正在从ETC2转向ASTC。
1.9 Unity官方对安卓ASTC格式支持说明
纹理导入支持BMP,EXR等格式,多层PSD文件自动展平。理想尺寸为2的整数次幂,非2的整数次幂纹理需要额外内存和采样速度。
1.10 正确设置
减小Max Size,使用2的幂尺寸,制作纹理图集,关闭Read/Write Enabled,禁用不必要的Mip Map。
注意Android使用ETC2压缩以获得最佳质量和文件大小平衡。存储Alpha通道使用RGBA16位压缩。
代码示例:导入图片时自动修改格式,统一将图片大小调整为1024。
示例代码包含导入图片、设置参数、调整纹理大小和格式的步骤。