Unity中Texture的ImportSettings中各设置对应的API

Unity中Texture的ImportSettings中各设置对应的API_第1张图片
下面是按顺序写的:
代码:

 if (GUI.Button(new Rect(0, 150, position.width, 30), "SetTexture"))
       {
           Object[] textures = Selection.GetFiltered(typeof(Texture2D), SelectionMode.DeepAssets);
           for (int i = 0; i < textures.Length; i++)
           {
               string path = AssetDatabase.GetAssetPath(textures[i]);
               TextureImporter import = AssetImporter.GetAtPath(path) as TextureImporter;
               import.textureType = TextureImporterType.Advanced;
               import.npotScale = TextureImporterNPOTScale.ToNearest;
               import.generateCubemap = TextureImporterGenerateCubemap.None;
               import.isReadable = false;
               import.normalmap = false; // import.lightmap = false;
               import.grayscaleToAlpha = false;
               import.alphaIsTransparency = true;
               import.linearTexture = true;
               import.spriteImportMode = SpriteImportMode.None;
               import.mipmapEnabled = false;
               import.wrapMode = TextureWrapMode.Clamp;
               import.filterMode = FilterMode.Bilinear;
               import.anisoLevel = 2;

               import.compressionQuality = (int)TextureCompressionQuality.Normal;
               //----
               import.SetPlatformTextureSettings("Standalone", 1024, TextureImporterFormat.AutomaticCompressed);
               import.SetPlatformTextureSettings("iPhone", 1024, TextureImporterFormat.AutomaticCompressed, 1);
               import.SetPlatformTextureSettings("Android", 1024, TextureImporterFormat.ETC2_RGBA8, 2);

               AssetDatabase.ImportAsset(path);
           }
       } 

上面是通过按钮把自己所选择的那些贴图进行设置,我们也可以重新导入这些贴图的时候进行自动设置(任何被导入的贴图都会自动设置),AssetPostprocessor这个类提供了当贴图,模型,动画,音频等在导入前后Unity调用的方法。
以在贴图导入前自动进行设置为例:

public class MyImportEditor : AssetPostprocessor { 
    public void OnPreprocessTexture() {
       TextureImporter import = assetImporter as TextureImporter ;
       import.textureType = TextureImporterType.Advanced;
       ......
       import.SetPlatformTextureSettings("Android", 1024, TextureImporterFormat.ETC2_RGBA8, 2);
   }
}

你可能感兴趣的:(Unity3D)