画像フォーマットを一括で設定したい【最新】
この記事を現バージョンに更新
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); } } }
ランチャーアイコンだけ圧縮しない方法
( 2018/10/30 追記)
ビルドする時に”ランチャーアイコン圧縮してんで〜”って警告がでたので、対処法を追記メモ。
上記のスクリプトに追加。
Compressed texture lancherIcon is used as icon. This might compromise visual quality of the final image. Uncompressed format might be considered as better import option.
//アイコン用のフォーマットを用意 var icon_Android_png = new TextureImporterPlatformSettings(); icon_Android_png.overridden = true; icon_Android_png.name = "Android"; icon_Android_png.maxTextureSize = 512; icon_Android_png.format = TextureImporterFormat.RGBA32; icon_Android_png.compressionQuality = 100; icon_Android_png.allowsAlphaSplitting = false; //ファイルパス名で判定してフォーマットを適応させる if (importer.assetPath.IndexOf("lancherIcon") >= 0) { importer.SetPlatformTextureSettings(icon_Android_png); }
参考にしたサイト様
以上。