1. 程式人生 > >[Unity基礎]匯入貼圖、模型等資原始檔時自動設定引數

[Unity基礎]匯入貼圖、模型等資原始檔時自動設定引數

程式碼設定Unity資源匯入引數

該類下有很多種資源匯入完成訊息通知:

OnPostprocessAudio音效匯入完成

OnPostprocessMaterial材質匯入完成

OnPostprocessModel模型匯入完成

OnPostprocessTexture貼圖匯入完成

OnPostprocessAllAssets所有資源匯入完成 。。。等等

還有資源匯入前:

OnPreprocessTexture圖片匯入之前呼叫。。。等等

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]);
        }
    }
}