版本: Unity 6 (6000.0)
语言英语
  • C#

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

建议更改

成功!

感谢您帮助我们提升 Unity 文档的质量。虽然我们无法采纳所有提交内容,但我们确实会阅读用户提出的每项更改建议,并在适当情况下进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请在几分钟后<a>重试</a>。感谢您抽出时间帮助我们提升 Unity 文档的质量。

关闭

取消

参数

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); } } }