zoukankan      html  css  js  c++  java
  • 空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已更新!"));
    }
    }

  • 相关阅读:
    山丽防水墙客户端的卸载
    还原冰点密码清除
    STP学习总结
    NTFS权限设置时卡死
    SQL server 2000安装时“以前的某个程序安装已在安装计算机上创建挂起”
    Projecet客户端登陆无法通过验证
    Linux-nftables
    Linux-kernel-timeline
    blog编辑技巧
    Linux-swap
  • 原文地址:https://www.cnblogs.com/JimmyCode/p/4674026.html
Copyright © 2011-2022 走看看