版本: Unity 6 (6000.0)
语言英语
  • C#

Texture2D.Compress

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们会阅读用户提出的每项更改建议,并在适用时进行更新。

关闭

提交失败

由于某种原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public void Compress(bool highQuality);

描述

在运行时将纹理压缩为 DXT/BCn 或 ETC 格式。

使用此方法在运行时压缩纹理。压缩纹理使用更少的图形内存,渲染速度更快。有关纹理压缩的更多信息,请参阅 纹理压缩

Unity 将纹理压缩到的格式取决于平台和纹理属性。

如果原始纹理没有 alpha 通道,纹理将采用 DXT1 (BC1) 格式;如果原始纹理有 alpha 通道,则采用 DXT5 (BC3) 格式。如果原始纹理是 R8,则压缩格式将是 BC4。如果原始纹理是 RG16,则压缩格式将是 BC5

在 Android、iOS 和 tvOS 上,这会将纹理压缩为 ETC/EAC 格式族。

true 传递给 highQuality 参数将在压缩过程中对源纹理进行抖动,这有助于减少压缩伪影,但速度稍慢。此参数对 ETC 压缩无效。

如果显卡不支持压缩或纹理已处于压缩格式,则 Compress 不会执行任何操作。

在编辑器脚本中,您可能需要使用 EditorUtility.CompressTexture,它使用更慢但压缩质量更高的压缩方式。它还可以压缩为其他压缩格式。

您还可以使用 LoadRawTextureData 函数将已预压缩的数据加载到纹理中。

其他资源:SetPixelsEditorUtility.CompressTextureLoadRawTextureData