判断资源贴图是否有alpha

/*

  modfly selected textures`s maxSize and ImportFormat

  bool hasAlpha = true;

  if(hasAlpha)then(texture.size/2 and trueColor)else(16bit)



  2014.05.27

*/



using UnityEngine;

using System.Collections;

using UnityEditor;

public class modflyTextures : ScriptableObject{



    [MenuItem ("Custom/modflyTextures")]

    static void processTexture_Auto() { 

        processTexture();

    }



    static void processTexture() { 

        

        Object[] textures = GetSelectedTextures(); 

        Selection.objects = new Object[0];

        foreach (Texture2D tex in textures)  {

            string path = AssetDatabase.GetAssetPath(tex); 

            TextureImporter importerTexture = AssetImporter.GetAtPath(path) as TextureImporter; 



            if(importerTexture.DoesSourceTextureHaveAlpha() ==  true){

                if(tex.width >= tex.height )

                    importerTexture.maxTextureSize = tex.width/2;

                else importerTexture.maxTextureSize = tex.height/2;

                

                importerTexture.textureFormat = TextureImporterFormat.AutomaticTruecolor;

            }else{

                if(tex.width >= tex.height )

                    importerTexture.maxTextureSize = tex.width;

                else importerTexture.maxTextureSize = tex.height;



                importerTexture.textureFormat = TextureImporterFormat.AutomaticCompressed;

            }

            AssetDatabase.ImportAsset(path); 

        }

    }



    static Object[] GetSelectedTextures() 

    { 

        return Selection.GetFiltered(typeof(Texture2D), SelectionMode.DeepAssets); 

    }

}

 

你可能感兴趣的:(Alpha)