description | 一个 MaterialDescription,用于描述导入的相机属性和动画。 |
material | 由模型导入器生成的材质。 |
animations | 由模型导入器生成的动画片段。 |
将此函数添加到子类中,以便在导入 ModelImporter 时创建新材质时接收通知。
仅当您将 ModelImporter.materialImportMode 设置为 ModelImporterMaterialImportMode.ImportViaMaterialDescription 时,Unity 才会调用此函数。此函数让您在模型导入过程中控制材质属性和动画。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); } } }