在unity资源商店买的模型包,导入unity后,全部材质丢失,稀里哗啦乱成一片
在网上搜了下材质丢失的办法,结果都是一个一个手动操作
窝草,资源包里接近两万个资产,手动不是要撸的灰飞烟灭
遂自制自动解决材质丢失办法

用法很简单粗暴
右键点击选着要更改的文件夹,

点击 easywork==>改变选中文件夹下所有材质为Standard

点击 easywork==>统一模型材质名称
如下,直接上代码

/********************************************************文件: 找回丢失材质.cs作者: 阿飞日期: CreateTime寄语: 虎年 虎虎生威  大吉大利功能: Nothing
*********************************************************/using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using System.IO;public class 找回丢失材质
{private static string shaderMode = "Standard";[MenuItem("Assets/阿飞的EasyWork/改变选中文件夹下所有材质为Standard")]/// <summary>/// 改变选中文件夹下所有材质为标准的/// </summary>public static void ChangeMaterialsMode(){string rootpath = GetSelectFilePath();foreach (var path in GetAssetsPathWithFormat(rootpath, "mat")){modificationMaterialMode(path);}}[MenuItem("Assets/阿飞的EasyWork/统一模型材质名称")]/// <summary>/// 改变选中文件夹下所有材质为标准的/// </summary>public static void click1(){string rootpath = GetSelectFilePath();foreach (var path in GetAssetsPathWithFormat(rootpath, "fbx")){modificationFBX_Name(path);}foreach (var path in GetAssetsPathWithFormat(rootpath, "FBX")){modificationFBX_Name(path);}AssetDatabase.Refresh();}public static void modificationFBX_Name(string path){if (string.IsNullOrEmpty(path))return;ModelImporter mode = (ModelImporter)ModelImporter.GetAtPath(path);if (mode != null){mode.materialName = ModelImporterMaterialName.BasedOnModelNameAndMaterialName;AssetDatabase.ImportAsset(path);}else{Debug.LogError("设置模型材质名称失败 : " + path);}}/// <summary>/// 根据路径修改材质为 Standard/// </summary>/// <param name="path">路径为Assets开头</param>public static void modificationMaterialMode(string path){if (string.IsNullOrEmpty(path))return;Material material = AssetDatabase.LoadAssetAtPath<Material>(path);if (material == null){Debug.Log(path);}else{material.shader = Shader.Find(shaderMode);}}public static string GetSelectFilePath(){UnityEngine.Object[] arr = Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.TopLevel);return (Application.dataPath.Substring(0, Application.dataPath.LastIndexOf('/')) + "/" + AssetDatabase.GetAssetPath(arr[0]));}public static List<string> GetAssetsPathWithFormat(string rootpath, string endformat){//获取指定路径下面的所有资源文件if (Directory.Exists(rootpath)){DirectoryInfo direction = new DirectoryInfo(rootpath);FileInfo[] files = direction.GetFiles("*", SearchOption.AllDirectories);List<string> result = new List<string>();for (int i = 0; i < files.Length; i++){if (files[i].Name.EndsWith("." + endformat)){result.Add(ConvertToAssetsPath(files[i].FullName));}}Debug.Log(string.Format("<color=green>文件数量 : {0}</color>", result.Count));return result;}return null;}public static string ConvertToAssetsPath(string path){string newpath = "";string[] roots = path.Split('\\');bool isadd = false;for (int i = 0; i < roots.Length; i++){if (roots[i].Equals("Assets") && isadd == false){isadd = true;}if (isadd){if (i == roots.Length - 1){newpath += roots[i];}else{newpath += roots[i] + "/";}}}return newpath;}
}

ok
反正我是解决了

Unity导入模型和材质丢失问题处理(大批量操作)相关推荐

  1. unity导入素材时材质丢失素材变成粉红色的解决方法

    有很多时候,当我们通过unity asset store或者blender等等外源导入素材时,会出现材质缺失的bug,如下图所示 : 一个很可能的原因,是由于unity本身管线在每个版本的更新过程中, ...

  2. unity游戏开发日志(一)将mmd模型导入unity,并解决材质丢失的问题

    开发目标 从零开始开发一款音乐手游,类似钢琴块的玩法加QQ炫舞画面,实现一部想玩就可以随时玩的简单音游.该项目着重练手,以及技术交流,欢迎大家指导. 开发计划 计划在两个月内完成游戏,该游戏完成后将进 ...

  3. FBX导入Unity中模型没有材质的处理

    一.3dMax导出FBX时的注意事项 导出时,确保maps文件存在,里面放着fbx用到的image 二.在Unity中的设置 1.文件拖入Unity的Assets文件夹中 2.查看模型的材质是否存在 ...

  4. unity模型导入android背景透明,Unity导入模型一面有贴图另一面透明的解决方案

    出现这种情况是因为模型用了双面材质,而Unity不支持双面材质.故导入模型到Unity中,会出现一面有贴图,另一面透明的情况. 解决方法: 1.自定义一个双面材质Shader,代码如下: Shader ...

  5. DAZ3D导入模型设置材质

    Substance里导出模型及贴图 导入模型到DAZ 选中模型,进入表面选项卡设置材质贴图 透明度默认是0就TM离谱 DAZ里

  6. [Unity]ShaderGraph问题所有材质丢失Maximum number (256) of shader keywords exceeded

    2018.2.18f个人64位 Maximum number (256) of shader keywords exceeded 可能需要删除一些shader 把Edit- ProjectSettin ...

  7. unity导入模型昏暗(对比度低)解决办法

    在3dmax等软件中颜色正常的模型导入unity后变得非常灰暗,特别难看. 如图: 一直以为是光线的问题,以为自己烘焙之类的没弄好,但今天百度才发现需要修改材质使用的shader,但按照百度说的改为u ...

  8. Unity导入模型后如何切换中心点和轴点

    1.首先在3DMAX中建好模型,轴点设置在旗杆底部 2.导入到Unity后会发现中心点还是在几何中心 3.只需要点击"Center"/"Pivot"就可以切换是 ...

  9. unity导入模型以及动画

    1.将设计人员提供的素材进行导入 不要直接将文件拖入到unity控制面板中,找到unity的Assets目录,将做好的模型文件粘贴进去 2.在Project控制面板点击模型,调整动画的模式 3.调整动 ...

最新文章

  1. [转]Asp.Net 上传大文件专题(3)--从请求流中获取数据并保存为文件[下]
  2. 手动删除oracle 归档文件,Oracle手动删除归档日志厚,出现ORA-19571错误
  3. 聚类算法(五)--层次聚类(系统聚类)及超易懂实例分析
  4. 手机访问服务器中的数据库文件,手机连接服务器数据库文件在哪里
  5. DiskGenius的 “终止位置参数溢出”错误解决方法。
  6. JavaMail操作的总结(2)
  7. 111 进程的创建和结束
  8. 通过Python计算经纬度点任意角度任意距离的经纬度点
  9. Python中的逻辑运算符:‘and‘与‘or‘的用法
  10. 【黑马程序员pink老师前端】HTML
  11. 《Cisco VPP SFC》4、ODL SFC 安装
  12. Naive Bayes——Naive在哪?
  13. IDea 工具debug模式详细说明
  14. 【张亚飞】 准确、完整地把握Flash动画设计的知识体系——Flash用户入门必读...
  15. 关于游戏技术发展的一些里程碑的技术
  16. Android 根据屏幕尺寸适配控件大小(按比例缩放)
  17. 推荐微信小程序常用的几个UI组件库
  18. c#语言编写成绩代码是,在C#中的分数
  19. (清风)数学建模:模糊分析法(二)应用
  20. static_cast和reinterpret_cast

热门文章

  1. html语言多行注释,html多行注释方法
  2. Bash 单行注释与多行注释
  3. 简历里的期望薪资应该写多少比较合适呢
  4. 你对Web3的迅速发展一无所知,逃离大厂去拥抱Web3
  5. XTU OJ 1324 Hash
  6. uniapp app内使用微信H5支付
  7. NVIDIA 第七届 SkyHackathon(一)比赛开发环境部署
  8. java在线运行工具,终于搞明白了
  9. 开源的虚拟化私有云及云管平台
  10. Android 高新面试题