using UnityEngine;
using System.Collections;
using UnityEditor; public class ChangeMaterial : EditorWindow
{ static string path = "Assets/_Materials/";
static string shaderName="Custom/CurvedWorld"; static string tempName1="_Curvature";//材质球参数,需要手动修改
static string tempName2="_Axis";
static float temp1=;
static float temp2=; public static string [] postfix =
{
".png",".jpg",".tga","psd"
}; [MenuItem ("Custom/ChangeMaterial")]
public static void Change()
{
if (Selection.activeGameObject != null) { foreach (GameObject go in Selection.gameObjects) {
Renderer render = go.GetComponentInChildren<Renderer> ();
if (render != null) { Texture texture = GetTexture (go.name);//根据对象名获取图片
if (texture != null) {
Material newMat = new Material (Shader.Find(shaderName)); newMat.SetFloat(tempName1,temp1);
newMat.SetFloat (tempName2,temp2); AssetDatabase.CreateAsset (newMat, path + go.name+".mat");
render.sharedMaterial=newMat;
render.sharedMaterial.mainTexture = texture;
Debug.Log ("成功!");
} else {
Debug.Log ("失败!");
}
}
}
}
}
static Texture GetTexture(string name)
{
foreach(string str in postfix)
{
Texture texture = AssetDatabase.LoadAssetAtPath("Assets/_Textures/" + name+str,typeof(Texture)) as Texture;
if(texture != null)
return texture;
}
return null;
}
}

注意:

  1.将要用到的模型都制作为预制体!!!

  2.手动修改参数

  

LittleTool之批量修改材质的更多相关文章

  1. 一键批量添加材质的法线贴图-unity插件

    有时候材质做完后需要更改贴图,或者增加贴图,数量少的时候可以一张张添加和修改,数量多的时候就只能代码生成了.原理是通过名字的关联:主贴图和法线贴图大多数只是后缀的不同上,如果不是那是美术规范没做好啊, ...

  2. Unity3D研究院之自制批量关联材质与贴图插件

    原地址:http://www.xuanyusong.com/archives/2314 美术做过的模型导出fbx,美术把Fbx和贴图文件给了程序,程序把Fbx导入工程可能会出现贴图和材质没有关联上的问 ...

  3. mac linux rename命令行批量修改文件名

    我的mac使用命令行批量修改名字时发现居然没有rename的指令: zsh: command not found: rename 所以使用HomeBrew先安装一下: ➜ ~ brew install ...

  4. MYSQL批量修改表前缀与表名sql语句

    修改表名 ALTER TABLE 原表名 RENAME TO 新表名; 一句SQL语句只能修改一张表 show tables; 1. SELECT CONCAT( 'ALTER TABLE ', ta ...

  5. 使用powershell批量修改文本为utf8

    根据上一篇powershell生成pro的方法,增加一个批量修改文本文件为utf8格式的方法 $incPath = dir -filter "*.c" -Recurse $temp ...

  6. nodejs 批量修改、删除

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAQhCAIAAABDaAVHAAAgAElEQVR4nOydeXxU5aH359733vd9b/ ...

  7. iOS --- DIY文件名批量修改

    批量修改文件名: // 1.创建文件管理 NSFileManager *filemanager =[NSFileManager defaultManager]; // 2. 获得所有文件夹路径 NSS ...

  8. ansible非root用户批量修改root密码

    前言: 由于线上服务器密码长久没有更新,现领导要求批量更换密码.线上的之前部署过salt,但由于各种因素没有正常使用. 使用自动化工具批量修改的计划搁浅了,后来领导给了个python多线程修改密码脚本 ...

  9. Python 批量修改文件名

    最近下载了几部美剧(越狱.迷失.权利的游戏......),每集文件名都好长好长..想改短一些,但一个一个改太累了,于是写了个脚本来实现批量修改: 修改前文件名: 修改后文件名: 代码实现: #enco ...

随机推荐

  1. Ubuntu下安装php调试工具xdebug

    安装xdebug: sudo apt-get install php-pear sudo apt-get install php5-dev pecl install xdebug 创建配置文件: /x ...

  2. 【6】了解Bootstrap栅格系统基础案例(1)

    从上一张我们了解了栅格选项,那么我们就来了实战了解下吧(其实还是中文官网的案例) ps.我这里是电脑上用谷歌浏览器来观察的,毕竟电脑的分辨率高(1440*900px),谷歌浏览器最大化后,值比大屏幕设 ...

  3. FolderBrowserDialog(文件夹浏览对话框)

    1.选择数据库目录,在此处不需要新建文件夹,因此屏蔽新建文件夹按钮. C#代码 FolderBrowserDialog df = new FolderBrowserDialog(); //设置文件浏览 ...

  4. Extension method for type

    扩展其实真的很简单 msdn是这样规定扩展方法的:"扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的. 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为 ...

  5. Python Socket,How to Create Socket Server? - 网络编程实例

    文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programin ...

  6. Web程序发布后显示个性化图标

    采用Tomcat发布程序后,浏览器上默认显示程序的图标是Tomcat图标.如下图所示: 需要显示自己个性化的图标,比如,这里显示一个图标. 只需要如下三步设置即可. 将制作的ico图标放在程序的根目录 ...

  7. Apache服务器部署ASP.NET网站

    资源罗列: apache如何支持asp.net 用 Apache 发布 ASP.NET 网站

  8. windows下使用MinGW的调试工具gdb.exe调试C程序

    1.编译源代码 C:MinGW\bin>gcc.exe -g -o program.exe program.c 编译选项上要加上“g”,这样生成的目标程序会含有调试内容,再用gdb调试的时候才能 ...

  9. python 内建函数 str() 和 repr() 的区别

    1.内建函数str()和repr() 或反引号操作符(``)可以方便地以字符串的方式获取对象的内容.类型.数值属性等信息. 2.str()函数得到的字符串可读性好(故被print调用) 3.repr( ...

  10. Jquery.Validate验证CheckBoxList,RadioButtonList,DropDownList是否选中

    http://blog.csdn.net/fox123871/article/details/8108030 <script type="text/javascript"&g ...