空Shader重新指认工具

using UnityEngine;
using UnityEditor;
using System.Collections;

public class CheckCharacterShader : EditorWindow
{
/// <summary>
/// 检测Character材质是否丢失shader丢失后重新指认
/// 请把脚本拷贝到Editor文件件下右键执行
/// </summary>
static CheckCharacterShader listWindow;
private string checkPath = "Assets/Art/Characters";

[MenuItem("Assets/CheckCharacterShader")]

// Use this for initialization
static void Start ()
{
listWindow = (CheckCharacterShader)EditorWindow.GetWindow(typeof(CheckCharacterShader), true, "角色空shader指定");
listWindow.minSize = new Vector2(600,200);
listWindow.Show();
}

void OnGUI()
{
if (GUILayout.Button("角色空shader指定", GUILayout.Height(40)))
{
AssignNullShader();
}
}

void AssignNullShader()
{
string[] PathList = AssetDatabase.FindAssets("t:Material", new string[] { checkPath });

for (int i = 0; i < PathList.Length; ++i)
{
string matPath = AssetDatabase.GUIDToAssetPath(PathList[i]);

if (matPath.Contains("Models") && !matPath.Contains("Effects"))
{
Material material = AssetDatabase.LoadAssetAtPath(matPath, typeof(Material)) as Material;

if (material.shader == Shader.Find("Hidden/InternalErrorShader"))
{
material.shader = Shader.Find("DreamFaction/Characters/Characters");
}

}
}

AssetDatabase.Refresh();
this.ShowNotification(new GUIContent("Project已更新!"));
}
}

时间: 2024-10-23 20:43:52

空Shader重新指认工具的相关文章

剑英陪你玩转图形学 (四)流光效果(草稿)

很多同学对shader的了解简直令人发指,不得不承认我之前的文章很失败,没有达到指引效果. 经过我深深的反思,本系列设定起点还是太高,仅仅着眼于本质不能让很多同学收获学习图形学的实效. 我已经反省过了,让这个系列更贴近初学者,你跟随着这篇东西去一步步操作,就能得到一些实际可用的Shader. 还是使用Unity作为测试工具,因为用他的人的确很多. 在这个小白丛生的圈子里说到图形学,大部分人都告诉你shader,我对此早已吐槽无力. 也只好放弃.随他去吧.该说的话之前的系列已经讲的很多,现在就从一

OpenGL ES for Android 环境搭建

在Android上运行OpenGL ES程序需要用到GLSurfaceView控件,GLSurfaceView继承自SurfaceView并实现了GLThread,通过OpenGL ES进行绘制. OpenGL ES1.0是基于OpenGL 1.3的,OpenGL ES1.1是基于OpenGL 1.5的.Android1.0和更高的版本支持这个API规范.OpenGL ES 1.x是针对固定硬件管线的. OpenGL ES2.0是基于OpenGL 2.0的,不兼容OpenGL ES 1.x.An

sed命令应用详解

sed应用详解 sed是文本处理处理工具"三大剑客"之一,它 是一种流编辑器,sed一次只处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.sed不会修改原文件内容,除非你使用重定向存储输出.sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等. 用法:sed [OPTION]

RMS升级迁移以及群集的一些分享

前端时间要做一个sharepoint跟rms的升级的项目,这里分享一下实施过程的一些经验. 关于rms的升级,看了微软官方网站,内容特别多,等我啃完了之后发现被搞糊涂了,所以最后还是自己亲自做实验得出了结论的. 1   RMS是以群集出现的,就算只有一台服务器,也是以群集的形式,对群集有了解的人就都知道是什么东西了,对rms也更加容易懂了 2   RMS的群集里面不能同时存在不同版本的rms,例如rms 2008版本的群集,使用2012的rms是无法加入群集的,同理 rms 2012创建的rms

入侵渗透简单教程 -中国寒龙www.hackerschina.org

一,踩点踩点可以了解目标主机和网络的一些基本的安全信息,主要有:1,管理员联系信息,电话号,传真号:2,IP地址范围:3,DNS服务器:4,邮件服务器.相关搜索方法:1,搜索网页.确定目标信息1,为以后发动字典和木马入侵做准备:寻找网页源代码找注释和 隐藏域,寻找隐藏域中的"FORM"标记.例如:<FORM action=/Poll/poll.asp method=post><input type=hidden name=vice value=vice><

Kotlin学习与实践 (十)Kotlin的可控性

可空类型 * 类型就是数据的分类.决定了该类型可能的值,以及在该类型值上可以完成的操作. * 与Java不同,Kotlin对可空类型的显示的支持.可空类型是Kotlin类型系统中帮助避免NullPointException错误的特性.* 这是一种指出你的程序中那些变量和属性允许为null的方式. * 可空类型和非可空类型的对象在运行时没有什么区别,可空类型并不是非空类型的包装.所有检查都是在编译时期,所以Kotlin的可空类型并不会在运行时带来额外的开销.先来看看Java中的空指针是怎么造成的

EBS 查看输出HTML报表问题总结

问题一: 请求输出格式为HTML(如下图,默认浏览器输出),希望 查看输出 的时候能够实现excel输出. 解决方法: 路径:系统管理员/安装/浏览器选项 注:维护如下记录 文件格式:HTML    [注:对应定义并发请求界面的 输出格式 HTML] MIME类型: application/vnd.ms-excel   [注:报表输出方式,若为浏览器输出,填"text/html",若为excel输出,则填"application/vnd.ms-excel", 说明:

Java中String的理解

Java中String的理解 最近在读String的源码,看了些String的文章,自己对String作了下总结记录下来. 1.String为什么是不可变的? String是final类,不可继承,其方法也不可被覆盖,避免从子类操纵父类属性:String的值保存在private final char[]数组中,本质是一个字符数组,私有则外部不可访问和修改,final引用则引用(或说引用的值)不变.引用可以简单地认为是堆上对象的首地址.String内部的private int hash,缓存has

Azure Stack 1904版本

持续每个月都在更新部署Azure Stack,本质上来说Azure Stack的功能也越来越强大.至今已经更新到ASDK 1904版本,Azure Stack 1904 更新内部版本号是1.1904.0.36.安装流程差别不大,但是具体的变化如下: 改进 1904 更新负载包含哪些主机 Azure Stack 不包括基础操作系统的 Azure Stack 组件的更新. 这使某些更新,确定其作用范围. 因此,预期时间它花费的 1904年更新完成小于 (大约 16 个小时,但确切的时间而异). 运行