【Unity】【エディタ拡張】スクリプトで生成したTexture2Dをpngとして保存する

スクリプトで生成したTexture2Dをアセットとして保存する方法です。

ソースコード

private void SaveTexture(string filePath, Texture2D texture)
{
    // バイト配列に変換する
    var bytes = texture.EncodeToPNG();

    // ファイルを保存する
    // パスは拡張子付きであること
    System.IO.File.WriteAllBytes(filePath, bytes);

    // 最後にRefresh
    AssetDatabase.Refresh();
}

説明はコメントに書いた通りです。

Texture2Dはpngのほかにもjpegなどに変換できます。

docs.unity3d.com

AssetDatabase.Refresh()を呼ばないとプロジェクトビューにすぐ出てこないので注意。

参考

docs.unity3d.com