Unity3D 导入贴图、模型等资源文件时自动设置参数

脚本继承至AssetPostprocessor, 存放在Editor目录下!

 

using UnityEngine;
using System.Collections;
using UnityEditor;

/// <summary>
/// AssetPostprocessor: 贴图、模型、声音等资源导入时调用,可自动设置相应参数
/// 导入图片时自动设置图片的参数
/// </summary>
public class TextureImportSetting : AssetPostprocessor{

    /// <summary>
    /// 图片导入之前调用,可设置图片的格式、Tag……
    /// </summary>
    void OnPreprocessTexture()
    {
        TextureImporter importer = (TextureImporter)assetImporter;
        importer.textureType = TextureImporterType.Sprite; // 设置为Sprite类型
        importer.mipmapEnabled = false; // 禁用mipmap
        //importer.spritePackingTag = "tag"; // 设置Sprite的打包Tag

        Debug.Log("OnPreprocessTexture");
    }

    /// <summary>
    /// 图片已经被压缩、保存到指定目录下之后调用
    /// </summary>
    /// <param name="texture"></param>
    void OnPostprocessTexure(Texture2D texture)
    {
        Debug.Log(texture.name);
    }

    /// <summary>
    /// 所有资源被导入、删除、移动完成之后调用
    /// </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 (string str in importedAssets)
        {
            Debug.Log("Reimported Asset: " + str);
        }
        foreach (string str in deletedAssets)
        {
            Debug.Log("Deleted Asset: " + str);
        }

        for (int i = 0; i < movedAssets.Length; i++)
        {
            Debug.Log("Moved Asset: " + movedAssets[i] + " from: " + movedFromAssetPaths[i]);
        }
    }
}

 

posted @ 2016-07-01 13:38  *Shanks*  阅读(6092)  评论(0编辑  收藏  举报