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

素人のUnity覚書と奮闘記

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

関連記事:画像の容量を抑えたい - Roba Memo - 素人のUnity覚書と奮闘記
参考サイト様:Unity で作ったアプリの画像が一部の Android 端末で表示されない件について - Qiita

Editorフォルダに専用クラスをつくる

f:id:nico-taniku:20170627092046p:plain:w500

コード

using UnityEngine;
using UnityEditor;

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

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

        if (importer.DoesSourceTextureHaveAlpha ()) {
            //Alphaチャンネルがある場合
            importer.SetPlatformTextureSettings ("iPhone", 2048, TextureImporterFormat.ASTC_RGBA_4x4, 50, false);
            importer.SetPlatformTextureSettings ("Android", 2048, TextureImporterFormat.DXT5, 50, false);
        } else {
            //Alphaチャンネルがない場合
            importer.SetPlatformTextureSettings ("iPhone", 2048, TextureImporterFormat.ASTC_RGB_4x4, 50, false);
            importer.SetPlatformTextureSettings ("Android", 2048, TextureImporterFormat.DXT1, 50, false);
        }

    }

}

確認

コードを書いて保存したら、画像をUnityにインポートするだけで自動的に変更される。
Android/Jpegの場合
f:id:nico-taniku:20170627092640p:plain:w500

Android/PNGの場合
f:id:nico-taniku:20170627092650p:plain:w500