Roba Memo - 素人のUnity覚書と奮闘記

素人のUnity覚書と奮闘記

画像フォーマットを一括で設定したい【最新】

この記事を現バージョンに更新
robamemo.hatenablog.com
上の方法だと、古いメソッド使わんといて!って怒られるから、対処してみた。

コード

Editorフォルダに以下のスクリプトを作成するだけ。

using UnityEngine;
using UnityEditor;

public class CustomAssetPostprocessor : AssetPostprocessor
{
    void OnPreprocessTexture ()
    {
        TextureImporter importer = assetImporter as TextureImporter;

        //MipMapのチェックを外す
        importer.mipmapEnabled = false;

        TextureImporterPlatformSettings iPhone_png = new TextureImporterPlatformSettings ();
        iPhone_png.overridden = true;
        iPhone_png.name = "iPhone";
        iPhone_png.maxTextureSize = 2048;
        iPhone_png.format = TextureImporterFormat.ASTC_RGBA_4x4;
        iPhone_png.compressionQuality = 50;
        iPhone_png.allowsAlphaSplitting = false;

        TextureImporterPlatformSettings iPhone_jpeg = new TextureImporterPlatformSettings ();
        iPhone_jpeg.overridden = true;
        iPhone_jpeg.name = "iPhone";
        iPhone_jpeg.maxTextureSize = 2048;
        iPhone_jpeg.format = TextureImporterFormat.ASTC_RGB_4x4;
        iPhone_jpeg.compressionQuality = 50;
        iPhone_jpeg.allowsAlphaSplitting = false;

        TextureImporterPlatformSettings Android_png = new TextureImporterPlatformSettings ();
        Android_png.overridden = true;
        Android_png.name = "Android";
        Android_png.maxTextureSize = 2048;
        Android_png.format = TextureImporterFormat.DXT5;
        Android_png.compressionQuality = 50;
        Android_png.allowsAlphaSplitting = false;

        TextureImporterPlatformSettings Android_jpeg = new TextureImporterPlatformSettings ();
        Android_jpeg.overridden = true;
        Android_jpeg.name = "Android";
        Android_jpeg.maxTextureSize = 2048;
        Android_jpeg.format = TextureImporterFormat.DXT1;
        Android_jpeg.compressionQuality = 50;
        Android_jpeg.allowsAlphaSplitting = false;


        if (importer.DoesSourceTextureHaveAlpha ()) {
            //Alphaチャンネルあある場合
            importer.SetPlatformTextureSettings (iPhone_png);
            importer.SetPlatformTextureSettings (Android_png);
        } else {
            //Alphaチャンネルがない場合
            importer.SetPlatformTextureSettings (iPhone_jpeg);
            importer.SetPlatformTextureSettings (Android_jpeg);
        }

    }

}