description | MaterialDescription 结构描述导入的材质属性和动画。 |
material | Model Importer 生成的材质。 |
animations | Model Importer 生成的动画剪辑。 |
将此函数添加到一个子类中,以在材质从 Model Importer 导入时接收通知。
仅当 ModelImporter.UseMaterialDescriptionPostprocessor 为 true 时调用此函数。此函数提供在模型导入过程中对材质属性和动画的用户控制。MaterialDescription 结构包含在导入的文件中读取的所有材质数据,可用于填充参数中的材质和动画剪辑。
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); } } }