Unity 检测资源文件导入

Unity 检测资源文件导入

用途:当向Unity导入 纹理资源、音效、fbx 等所有Unity支持格式的资源,想通过代码来修改或者验证资源命名是否合乎规范,如果已经在Unity中了则可以在 Assets 文件夹内鼠标右键 然后点击 Reimport,也会执行下面的逻辑

创建一个 Editor 文件夹,然后在Editor 文件夹中随便创建一个脚本,脚本命名随意
添加 using UnityEditor;
继承 AssetPostprocessor

代码如下

using UnityEngine;
using UnityEditor;

public class TextureAssetCheck : AssetPostprocessor
{
    
    

    // 纹理导入之前调用
    public void OnPreprocessTexture()
    {
    
    
        // 可以修改一些属性或者使用代码验证纹理的命名是否合乎规范
        TextureImporter textureImporter = assetImporter as TextureImporter;
        Debug.LogError("Pre Texture:" + textureImporter.assetPath);
    }

    // 纹理导入之后调用
    public void OnPostprocessTexture(Texture2D texture)
    {
    
    
        TextureImporter textureImporter = assetImporter as TextureImporter;
        Debug.LogError("Post Texutre:" + assetPath.ToLower());
        Debug.LogError("Post Texture:" + texture.width + "    " + texture.height);
    }

    // 所有资源导入都会调用这里
    public void OnPreprocessAsset()
    {
    
    
        //目录信息也会被获取到
        //Debug.LogError("Asset:" + assetImporter.assetPath);
    }

    /// <summary>
    /// 在任意数量的资源导入完成后调用
    /// 此函数必须声明为 static
    /// </summary>
    /// <param name="importedAssets"></param>
    /// <param name="deletedAssets"></param>
    /// <param name="movedAssets"></param>
    /// <param name="movedFromAssetPaths"></param>
    static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
    {
    
    
        foreach(var asset in importedAssets)
        {
    
    
            Debug.LogError("import:" + asset);
        }

        foreach (var asset in deletedAssets)
        {
    
    
            Debug.LogError("delete:" + asset);
        }

        foreach (var asset in movedAssets)
        {
    
    
            Debug.LogError("move:" + asset);
        }

        foreach (var asset in movedFromAssetPaths)
        {
    
    
            Debug.LogError("moveFromAsset:" + asset);
        }
    }
}

根据自己的需求实现功能
比如检查导入资源的名字中是否包含 空格、特殊符号、不合乎项目自己规定的一些规范

猜你喜欢

转载自blog.csdn.net/LIQIANGEASTSUN/article/details/127287535