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