编辑器扩展 --- 自动化处理之AssetPostprocessor资源导入

AssetPostprocessor资源导入管线

AssetPostprocessor用于在资源导入时自动做一些设置,比如当导入大量图片时,自动设置图片的类型,大小等。AssetPostprocessor作为资源导入的管理器,可以根据不同的资源类型,在导入前、导入后做一些处理。

 

常用的方法:

OnPreprocessTexture:在导入纹理贴图之前调用
OnPreprocessModel:在导入模型之前调用
OnPreprocessAudio:在导入音频之前调用

OnPostprocessTexture:在导入纹理贴图之后调用
OnPostprocessModel:在导入模型之后调用
OnPostprocessAudio:在导入音频之后调用
OnPostprocessAllAssets:所有资源的导入,删除,移动操作都会调用该方法

示例,对导入的纹理贴图资源进行一定的自动设置:
注意:对图片纹理的设置需要放在OnPreprocessTexture方法中执行

using UnityEditor;

/// <summary>
/// 贴图导入自动设置正确的压缩格式
/// </summary>
public class TextureImport : AssetPostprocessor
{
    void OnpreprocessTexture()
    {
        //判断贴图导出的路径,设置正确的压缩格式
        if (assetPath.Contains("Assets"))
        {
            TextureImporter textureImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter;
            textureImporter.textureType = TextureImporterType.Sprite;//设置贴图的格式为精灵
            textureImporter.mipmapEnabled = false;//mipmap关闭

            //设置各平台的压缩格式
            TextureImporterPlatformSettings settings = new TextureImporterPlatformSettings();
            settings.overridden = true;
            settings.name = "iPhone";
            settings.format = TextureImporterFormat.ASTC_RGBA_4x4;
            textureImporter.SetPlatformTextureSettings(settings);
        }
    }
}

  

 

posted @ 2021-08-27 09:19  赵不灰  阅读(593)  评论(0编辑  收藏  举报