可以使用此选项卡更改 Unity 在导入模型时处理材质和纹理的方式。
当 Unity 导入没有指定任何材质的模型时,它使用 Unity 漫反射材质。如果模型有材质,Unity 会将这些材质导入为子资源。
如果模型有纹理,还可以使用 Extract Textures 按钮将纹理提取到项目中。
属性 | 功能 | |
---|---|---|
Material Creation Mode | 定义希望 Unity 如何为模型生成或导入材质。从该下拉菜单中选择 None 时,Inspector 将在此选项卡上隐藏其余设置。 | |
None | 不使用此模型中嵌入的任何材质。改用 Unity 的默认漫射材质。 | |
Standard | 导入时,Unity 应用一组默认规则来生成材质。如果要通过脚本来自定义 Unity 生成材质的方式,请改用 Import via MaterialDescription (Experimental) 模式。 | |
Import via MaterialDescription (Experimental) | 导入时,Unity 使用 FBX 文件中嵌入的材质描述来生成材质。与先前的导入方法相比,此方法可提供更准确的结果,并且支持更广泛的材质类型,例如 Autodesk 的 Arnold 和 Physical 以及 Unity 的 HDRP 材质。有关更多信息,请参阅下面的材质描述部分。 | |
sRGB Albedo Colors | 启用此选项可在伽马空间中使用反照率颜色。默认情况下为旧版导入方法启用了此选项。 对于使用线性颜色空间的项目,请禁用此选项。 如果从 Material Creation Mode 下拉菜单中选择 Import via MaterialDescription (Experimental),则该属性不可用。 |
|
Location | 定义如何访问材质和纹理。根据选择的这些选项,可以使用不同的属性。 | |
Use Embedded Materials | 将导入的材质保持在导入的资源中。从 Unity 2017.2 版本开始,这是默认选项。 | |
Use External Materials (Legacy) | 将导入的材质提取为外部资源。这是旧版的材质处理方式,适用于使用 Unity 2017.1 或早期版本创建的项目。 |
从 Location 选项中选择 Use Embedded Materials 时,将显示以下导入选项:
(A) 单击 Extract Materials 和 Extract Textures 按钮可提取导入的资源中嵌入的所有材质和纹理。如果没有需要提取的子资源,这两个按钮显示为灰色。在这两个按钮下方,Unity 显示有关导入过程的所有消息。
(B) On Demand Remap 部分提供 Naming 和 Search 属性,允许您自定义 Unity 将导入的材质映射到模型的方式。单击 Search and Remap 按钮可将导入的材质重新映射到现有材质资源。如果 Unity 找不到具有正确名称的任何材质,则不会有任何变化。
(C) Unity 显示在 Remapped Materials 列表中的资源中找到的所有导入材质。如果 Unity 无法自动将每种材质与项目中现有的材质资源进行匹配,则可以在此列表中自行设置对材质的引用。
新导入操作或对原始资源的更改不会影响提取的材质。如果要从源资源重新导入材质,必须删除 Remapped Materials 列表中对提取的材质的引用。要从该列表中删除某一项,请选择该项,然后按键盘上的 Backspace 键。
定义材质的命名策略。
属性 | 功能 |
---|---|
By Base Texture Name | 使用导入材质的漫射纹理名称来命名材质。如果未将漫射纹理分配给材质,Unity 将使用导入材质的名称。 |
From Model’s Material | 使用导入材质的名称来命名材质。 |
Model Name + Model’s Material | 使用模型文件的名称与导入材质的名称相结合来命名材质。 |
定义 Unity 尝试在使用 Naming 选项定义的名称时查找现有材质的位置。
属性 | 功能 |
---|---|
Local Materials Folder | 在本地 Materials 子文件夹(即模型文件所在的同一文件夹)中查找现有材质。 |
Recursive-Up | 在所有父文件夹(一直向上追溯到 Assets 文件夹)中的所有 Materials 子文件夹中查找现有材质。 |
Project-Wide | 在所有 Unity 项目文件夹中查找现有材质。 |
从 2019.3 版本开始,Unity 引入了在导入期间通过脚本修改材质映射的功能。用户可以修改 Unity 如何将导入的材质属性从 FBX 文件中嵌入的数据映射到 Unity 材质属性。材质描述定义了一个名称和几组值,它们描述了材质及其引用的任何纹理。有关这种描述的结构的更多信息,请参阅 MaterialDescription 类参考页面。
在 ImportViaMaterialDescription 模式下,模型导入器会将材质的创建任务委派给 AssetPostProcessor.OnPreprocessMaterialDescription 回调。
Unity 提供了该后期处理程序 (Post Processor) 的默认实现方案,可处理以下材质:
与 ImportStandard 模式相比,这些默认实现方案处理导入材质的方式有所不同,有以下改进:
支持更多材质类型,例如 Autodesk 的 Arnold 和 Interactive 或 Physical,还支持 Unity 的 HDRP 材质。
支持发光材质。
如果设置了漫射纹理,则会忽略漫射颜色(与 Autodesk® Maya® 和 Autodesk® 3ds Max® 中的处理方式一致)。
将凹凸系数、发光颜色和发光系数纳入考虑范围。
在 FBX 文件中有相应定义时可以导入发光颜色动画。
注意:3ds Max 不能导出发光颜色动画,因此 Unity 也无法导入发光颜色动画。
以完全透明形式导入透明材质。旧版系统则以完全不透明形式导入透明材质。
此外,还可以导入所有 Autodesk Interactive 材质属性动画,并且从 3DS 文件导入材质时不再忽略不透明度。
从 Location 选项中选择 Use External Materials (Legacy) 时,将显示以下导入选项:
此选项提取材质并将它们保存到外部,而不是保存在模型资源内部。Naming 和 Search 属性可帮助 Unity 找到导入的材质以映射到模型。
在 Unity 2017.2 版之前,这是默认的材质处理方式。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.