Version: 2019.4

AssetPostprocessor.OnPreprocessMaterialDescription(MaterialDescription,Material, AnimationClip[])



descriptionMaterialDescription structure describing the imported material properties and animations.
materialThe material generated by the Model Importer.
animationsThe animation clips generated by the Model Importer.


Add this function to a subclass to recieve a notification when a material is imported from a Model Importer.

This function is only called when ModelImporter.UseMaterialDescriptionPostprocessor is true. This function provides user control over material properties and animations during model import. The MaterialDescription structure contains all the material data read in the imported file which can be used to populate the material and animation clips in parameters.

using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using UnityEditor.AssetImporters;

public class CreateMaterialFromMaterialDescription : AssetPostprocessor { public void OnPreprocessMaterialDescription(MaterialDescription description, Material material, AnimationClip[] materialAnimation) { var shader = Shader.Find("Standard"); if (shader == null) return; material.shader = shader;

List<string> props = new List<string>(); // list the properties of type Vector4 : description.GetVector4PropertyNames(props); Debug.Log(props);

// Read a texture property from the material description. TexturePropertyDescription textureProperty; if (description.TryGetProperty("DiffuseColor", out textureProperty)) { // Assign the texture to the material. material.SetTexture("_MainTex", textureProperty.texture); } } }