可以使用此选项卡更改 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 | 启用此选项可在伽马空间中使用反射率贴图 (Albedo) 颜色。旧版导入方法默认会启用此选项。 对于使用线性颜色空间的项目,请禁用此选项。 如果从__材质创建模式 (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 版之前,这是默认的材质处理方式。