假设现在有一大批模型的材质球的shader丢失了,我们想把这批模型的材质球都使用Mobile/Unlit (Supports Lightmap)这个shader,挨个挨个点太麻烦了,可以用代码来批量执行这件事

代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;public class FixMatShader
{[MenuItem("Tools/Aux/修复材质球shader丢失")]static void StartRun(){var objs = Selection.objects;foreach (var obj in objs){var go = obj as GameObject;var rs = go.GetComponentsInChildren<Renderer>();foreach (var r in rs){if (null != r.sharedMaterial)r.sharedMaterial.shader = Shader.Find("Mobile/Unlit (Supports Lightmap)");}}}
}

选择那批模型的预设,然后执行菜单【Tools/Aux/修复材质球shader丢失】即可


补充

我们是通过Shader.Find来找到Unity的内置shader的,那么shader的名字在哪里查看呢
在材质球空白处右键-Edit Shader…

然后点击Compile and show code

这样就可以看到shader的代码了,头部那里就可以看到shader的名字了

Unity用代码批量修复材质球shader丢失的问题相关推荐

  1. unity Editor下批量设置材质球中的贴图部分:

    批量设置材质球中Main Maps部分贴图包含 Albedo,Metallic,Nomap,Occlusion 脚本存放位置:放在在Editor目录之下 点击 window 之下的AddMateria ...

  2. Unity中用代码动态改变材质球贴图

    首先先把贴图放在Resources文件夹下,或者新建一个文件夹,便于管理. 并命好名,方便遍历. 创建脚本,挂在要动态改变的物体上. using System.Collections; using S ...

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

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

  4. Unity3D代码动态修改材质球的颜色

    代码动态修改材质球的颜色: gameObject.GetComponent<Renderer>().material.color=Color.red;//当材质球的Shader为标准时,可 ...

  5. Unity中的网格与材质球合并

    很多时候我们需要把具有相同shader的材质球合并,从而减少drawcall的产生. 比如九龙战里面,一个人物带有10个部位,10个部位各自来自不同的fbx文件,加上身体,就有11个材质球,占上11个 ...

  6. Unity使用脚本更换物体材质球

    ㅤㅤㅤ 思路:获取物品Mesh Render下的Materials,进行一层或者多层的替换 代码(按A,B切换材质球): using UnityEngine;public class SwitchMa ...

  7. Unity实现动态修改模型材质球

    一.定义需要替换的材质球(且加载该材质球) private Material _HighLightMat; //实现闪烁高亮效果材质球 _HighLightMat = Resources.Load(& ...

  8. 【Unity】获取模型的材质球贴图中的像素点色值

    获取模型的材质球贴图中的像素点色值,可以计算模型贴图的RGB.或某个色值的占比,也可以动态修改指定像素色值. 方式一: 获取可读的贴图,并遍历像素点:(通过Texture获取Texture2D操作的运 ...

  9. 关于unity中使用solidwork模型材质及动画丢失问题

    由于我们的模型一般是从网络上下载好的solidwork工业模型,或者是应用solidwork自己制作的模型, 希望将我们的模型导入到unity中,但是发现导入到unity中后模型的材质以及动画数据丢失 ...

最新文章

  1. 模式识别中Fisher分类器的Matlab实现及测试
  2. 前端基础之JavaScript_2
  3. java学习(125):简单异常处理
  4. Linux编程练习 --多线程4--条件变量
  5. Java创建一个学生类
  6. 【ES8(2017)】Object 扩展 values() / entries() / getOwnPropertyDescriptors()
  7. Map集合的遍历方法
  8. 源码0501-07-GCD的基本使用
  9. python异常值处理实例_python-异常值:(“ 08001”,“ [08001] [unixODBC]...
  10. Python3:递归实现输出目录下所有的文件
  11. HTML inline 与block元素
  12. 利用VBB仿真——实现摇杆时钟
  13. NB-IOT-BC26模块TCP AT指令调试记录
  14. vscode自动排版_微信公众号排版 | 最适合程序员的公众号排版
  15. Eclipse安装漂亮的Darkest Dark Theme主题步骤(超详细)
  16. 集成稳压电源的分类及特性
  17. 强化学习论文分析3---蜂窝网络联合频谱和功率分配的深度强化学习--《Deep Reinforcement Learning for ......》
  18. gis坐标|度分秒与十进制转换公式
  19. Android Framework启动流程
  20. 考研数据结构之数组(5.1)——练习题之移动数组所有非零元素到数组前端(C表示)

热门文章

  1. 阅读软件怎么添加书源_继阅读软件后又一款阅读神器,安卓专用,上千书源,无广告,无vip...
  2. pyton笔记-part1
  3. 对图片进行裁减预处理
  4. java visibility_CSS visibility属性
  5. 什么软件测试鞋子真假,教你5招辨别真假Yeezy Boost鞋,真真假假你图啥?
  6. DFS【古希腊之争(一)】
  7. 为什么不建议在MySQL中使用 utf8?
  8. 基恩士编程c语言,基恩士xg7000系列.pdf
  9. Chaos Emulator核心功能开发历程
  10. 中国移动互联网测试开发大会(简称MTSC大会)