Unity3D引擎處理紋理:不論你導入的是PNG,PSD還是TGA,它們都會被自動轉換成Unity自己的Texture2D格式。(美術資源規範:貼圖長寬應爲4的倍數)
不同平臺的圖集格式選擇方案(TextureImporterFormat):
Android:
RGB Compressed ETC1 4 bits+Alpha(方形)
iOS:
RGB Compressed PVRTC 4 bits+Alpha(方形)
所以圖集需要設置爲方形。
對於非方形的紋理:
Android:
低畫質:RGB Compressed ETC2 4 bits(非透明)/RGBA Compressed ETC2 8 bits(透明)
中畫質:RGBA 16 bits
高畫質: RGBA 32 bits
ETC2 的格式理論上只在OpenGL ES 3.0 的設備上被支持,而在不被支持的設備上則會內部自動轉成 RGBA32/ARGB32的格式,這對於 RGBA Compressed ETC2 8bits 的紋理就是放大了 4 倍。
iOS:
低畫質:RGBA 16 bits
高畫質: RGBA 32 bits
紋理資源方面的問題除了尺寸外,紋理格式、Mipmap設置和Read&Write功能
格式修改代碼:
TextureImporter import = AssetImporter.GetAtPath(path) as TextureImporter;
AssetDatabase.ImportAsset(path);