Unity导入fbx资源文件的时候,需要修改材质的某个属性,其实修改某个属性为同一个值还是比较简单的,只需要全选所有的材质,然后在Inspector里面进行修改就行了,就会批量修改所有的材质属性。

如果修改很多的材质,每个属性都不一样呢?我这边写了一个脚本来进行操作。具体的步骤为:

1、根据材质目录获取所有的材质路径

2、根据材质路径加载所有的材质,并对每个材质修改属性。

3、保存修改的材质。

下面展示了我在修改烘焙材质的例子,大家可参考。主要我们Emission下面的Color贴图跟Albedo贴图保持一致的例子。

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;public class ModifyMatrial : MonoBehaviour
{[SerializeField]private string MatrialsDir;public List<string> GetMaterialsPath(string targetFilePath, string searchType){List<string> matrialPaths = new List<string>();if (Directory.Exists(targetFilePath)){string[] guids;//搜索guids = AssetDatabase.FindAssets("t:" + searchType, new[] { targetFilePath });foreach (string guid in guids){string source = AssetDatabase.GUIDToAssetPath(guid);matrialPaths.Add(source);}}return matrialPaths;}public void ModifyMatrials(){AssetDatabase.DisallowAutoRefresh();List<string> matrialPaths = GetMaterialsPath(MatrialsDir, "Material");foreach(var one in matrialPaths){Material mat = AssetDatabase.LoadAssetAtPath<Material>(one);if(mat != null){Texture mainTex = mat.GetTexture("_MainTex");mat.SetTexture("_EmissionMap", mainTex);}}AssetDatabase.SaveAssets();AssetDatabase.Refresh();AssetDatabase.AllowAutoRefresh();}
}

Unity如何批量修改材质的属性相关推荐

  1. Unity Prefab批量修改

    下面实现的一个功能是对一个文件夹下的所有prefab批量修改,比如移除某个子物体,添加一个组件等,然后保存到另一个新的文件夹下: 如下,我们实现一个扩展窗口,用于选择源文件夹和目标文件夹:然后遍历所有 ...

  2. unity 材质球无法编辑_【每天一个Unity技巧】批量修改材质球的主贴图和添加法线贴图...

    注释以后有空再写吧,加班到现在还没吃饭呢 using System.Collections; using System.Collections.Generic; using UnityEngine; ...

  3. Unity 中批量修改模型材质球

    实现在编辑器中,直接替换父节点下所有模型的材质球 public class CheckMaterials : MonoBehaviour {public Material mat;[ContextMe ...

  4. Unity 编辑器批量修改Prefab

    最近写了些小工具,记录和分享一下 工具 [MenuItem("Assets/工具/赋值")]public static void SetSelectedPrefabsValue() ...

  5. Unity3D 获取子孙物体并修改材质球属性

    如图要获取划线物体并修改其材质球: private Transform[] FindChild; public Material ChangeMat;//变换后的材质球 private Materia ...

  6. maya arnold 材质批量修改插件

    一.前言 做项目时,经常涉及到,大量物体材质属性修改,主要是arnold的 aiStandardSurface 标准材质节点属性.每次都得选择物体后,在材质编辑器里编辑相应材质球.当频繁修改大量材质时 ...

  7. unity 编辑器窗口 批量修改文件名字

    unity 编辑器批量修改.替换 文件名: 记录一下,窗口效果如下,需要选中文件,可多选 在排序的基础上增加了双排序和替换功能 代码: public class RenameFile : Editor ...

  8. mybatis批量修改2种方式

    一种:根据ID集合批量修改属性 列如:mapper层 /*** 批量删除员工* @param param 入参*/ void batchEmpStatus(DeleteEmpParam param); ...

  9. unity材质球属性无法修改

    unity材质球属性无法修改 出现的问题情况: 解决办法 出现的问题情况: 如图,unity材质球属性是灰色的无法修改 解决办法 找到材质球然后对原来的材质球进行复制(Crtl+D),再将复制后的材质 ...

最新文章

  1. linux qt 连接sqlite3,RedHat 9 Linux下在QT3.1中连接SQLite3全过程详细记录
  2. Codeforces Round #311 (Div. 2) A. Ilya and Diplomas 水题
  3. 配置防盗链、 访问控制Directory 、访问控制FilesMatch
  4. linux系统参加网络会议,在Deepin Linux系统下运行腾讯会议的方略
  5. Spring Boot(2.1.2.RELEASE) + Spring Cloud (Finchley.RELEASE)搭建服务注册和发现组件Eureka
  6. python txt转dataframe_Python格式化解析不规则txt文本并转为dataframe
  7. 【elasticsearch】org.elasticsearch.cluster.block.ClusterBlockException: blocked by: [SERVICE_UNAVAILA
  8. 中职计算机专业第二单元试题,大学计算机Moodle第二单元测验满分答案
  9. openstack创建的实例不能使用ssh登录
  10. Arduion 底层原理之 Uart函数 串口收发 串口协议解析
  11. 算法导论 pdf_下载算法导论_高清_pdf
  12. quick cocos2dx 组件使用要领
  13. axios get请求中文乱码
  14. 软考软件设计师考试总结(2018上半年)
  15. 如何用ps制作GIF动图
  16. linux twiki 添加权限,Ubuntu上TWiki安装和使用心得
  17. java翻译程序_有没有java代码翻译软件?
  18. tableau 字段去重_tableau prep学习
  19. 中国IT工作者35岁后的发展出路调查报告(4)
  20. PPI (手机屏幕的PPI 和计算方法)

热门文章

  1. Python 中的列表推导式
  2. python rot13解密_用Python实现的rot13编解码
  3. 一张图告诉你246个国家最新的无人机法律
  4. Axure RP大数据BI可视化大屏原型模板及通用组件库
  5. CDH健康检查报DATA_NODE_BLOCK_COUNT告警
  6. 金山毒霸机智卸载法!!!
  7. 计算机更改显卡,如何更换显卡
  8. Java使用poi读取excel数据(excel可能很大,先转换为csv再读取)
  9. tensorflow之 AttributeError: module 'tensorflow' has no attribute 'sub'
  10. 法国经济发展状况概述