我用下面的方法來壓縮一串質地:更改多重紋理壓縮格式
public void OnPostprocessTexture (Texture2D t) {
EditorUtility.CompressTexture(t, TextureFormat.DXT5, 2);
}
的想法是嘗試導入時,壓縮的紋理。我有一個項目有許多紋理,沒有使用最佳格式。
問題是這些更改沒有保存在任何地方,如果您檢查編輯器,您會發現格式保持不變。我可以將腳本留在那裏並重新導入構建服務器中的所有內容,但我想要一種方法來保存這些更改。
我能想到的唯一方法是使用我想要的格式創建另一個紋理並複製/替換紋理。有一個更好的方法嗎?
編輯
做一些更多的測試,我發現了一些奇怪:EditorUtility.CompressTexture
以某種方式壓縮NPOT紋理。這是運行腳本之前:
這是運行EditorUtility.CompressTexture
後:
這是如何工作的? Sergey的答案可以幫助我改變格式,但它不會壓縮NPOT紋理,我真的需要保存這些字節。
謝謝!雖然這有助於我仍然留下了問題,因爲我的新發現(我編輯了我的問題,請看看)。另一個細節:我不同意CompressTexture在RAM中創建一個對象而不是磁盤,我認爲它會在Library文件夾內創建一個文件(在某些時候加載到RAM中)。 – Roberto