关于保存问题,实在是 踩了不少坑(几乎花了一个下午)。 这里额外说明一下,如果只是当次使用,可以用UnityEditor.compressTexture的方法去修改压缩格式,但是这种方法重开项目后就还原了。
修改Texture2D的Format,需要修改Texture2D中的 ImportSettings,修改其中的TextureImporterFormat, 代码如下:
Texture2D t2D = (Texture2D) AssetDatabase.LoadAssetAtPath(t2D_path, typeof(Texture2D));
TextureImporter ti = (TextureImporter)TextureImporter.GetAtPath(AssetDatabase.GetAssetPath(t2D));
ti.textureFormat = changeTextureImporterFormat;
t2D对象是读取进来的Texture2D对象。 关于 TextureImporterFormat, 可以参考Unity官方api,链接如下:
http://docs.unity3d.com/ScriptReference/TextureImporterFormat.html
在更改了ImporterFormat后,一定一定要记得重新Import Texture2D !! 否则格式转换无法保存,即使当时觉得正确,重开项目后会发现更改恢复了。 重新Import方法如下:
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(t2D));
这样压缩格式得到更改,并且项目重开也不会还原。
希望能帮助到有需要的同学,尽量少踩坑。