Unity 資源導入自動化處理 AssetPostprocessor


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using UnityEditor;

/// <summary>
/// 模型導入檢測工具
/// 參數驗證,以及自動優化設置等等
/// </summary>
public class ModelImportTools : AssetPostprocessor
{
//模型導入之前調用
public void OnPreprocessModel()
{
Debug.Log("OnPreprocessModel=" + assetPath);
ModelImporter impor = assetImporter as ModelImporter;
DoModelSettings();
}

//模型導入之后調用
public void OnPostprocessModel(GameObject go)
{
Debug.Log("OnPostprocessModel=" + go.name);
}

//紋理導入之前調用,針對入到的紋理進行設置
public void OnPreprocessTexture()
{
Debug.Log("OnPreProcessTexture=" + assetPath);
TextureImporter impor = assetImporter as TextureImporter;
}

public void OnPostprocessTexture(Texture2D tex)
{
Debug.Log("OnPostProcessTexture=" + assetPath);
}

public void OnPostprocessAudio(AudioClip clip)
{
Debug.Log("OnPostprocessAudio=" + assetPath);
}

public void OnPreprocessAudio()
{
AudioImporter audio = assetImporter as AudioImporter;
}

//所有的資源的導入,刪除,移動,都會調用此方法,注意,這個方法是static的
public static void OnPostprocessAllAssets(string[] importedAsset, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
{
//Debug.Log("OnPostprocessAllAssets");
foreach (string str in importedAsset)
{
Debug.Log("importedAsset = " + str);
}
foreach (string str in deletedAssets)
{
Debug.Log("deletedAssets = " + str);
}
foreach (string str in movedAssets)
{
Debug.Log("movedAssets = " + str);
}
foreach (string str in movedFromAssetPaths)
{
Debug.Log("movedFromAssetPaths = " + str);
}
}

/// <summary>
/// 模型參數自動設置
/// </summary>
void DoModelSettings()
{
ModelImporter model = assetImporter as ModelImporter;
model.useFileUnits = false;
model.useFileScale = false;
//model.importBlendShapes = false;
//model.importBlendShapeNormals = ModelImporterNormals.Import;
//model.importNormals = ModelImporterNormals.Import;

model.SaveAndReimport();

//string path = AssetDatabase.GetAssetPath(Selection.activeObject);
//ModelImporter modelimp = AssetImporter.GetAtPath(path) as ModelImporter;
//modelimp.animationWrapMode = WrapMode.Once;
////modelimp.animationType = ModelImporterAnimationType.Human;
//modelimp.animationCompression = ModelImporterAnimationCompression.KeyframeReductionAndCompression;
//ModelImporterClipAnimation[] anims = modelimp.clipAnimations;

//ModelImporter
//ShaderImporter;
//VideoClipImporter;
//ModelImporter;
//ModelImporterClipAnimation;
//AudioImporter;
//ModelImporter;
//TextureImporter;
//AssetImporter;
}

void AnimationImport()
{
//string path = AssetDatabase.GetAssetPath(Selection.activeObject);
//ModelImporter modelimp = AssetImporter.GetAtPath(path) as ModelImporter;
//modelimp.animationWrapMode = WrapMode.Once;
////modelimp.animationType = ModelImporterAnimationType.Human;
//modelimp.animationCompression = ModelImporterAnimationCompression.KeyframeReductionAndCompression;
//ModelImporterClipAnimation[] anims = modelimp.clipAnimations;

//ModelImporter
//ShaderImporter;
//VideoClipImporter;
//ModelImporter;
//ModelImporterClipAnimation;
//AudioImporter;
//ModelImporter;
//TextureImporter;
//AssetImporter;
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM