Unity一键转换DDS贴图为PNG格式

阅读: 评论:0

Unity一键转换DDS贴图为PNG格式

Unity一键转换DDS贴图为PNG格式

问题背景

现在还有很多模型资源使用DDS格式的贴图,这种格式在Unity打iOS包的时候会提示错误,所以需要将DDS格式转换为其他格式。但是面对大量的材质需要替换时,不仅很累,而且很容易出错。

一、转换格式

转换格式有很多软件可以做到,推荐一款很好用的图片格式转换软件 Xnconvert(点击下载)。
在Unity工程Asset目录下使用资源管理器搜索功能搜索“.dds”,按文件类型排序,效果如下;选中所有搜出来的.dds贴图文件,拖到XnConvert的输入文件区域:
然后切换到输出界面,修改一下输出格式,使转换后的.png格式的图片和原来的dds文件处在同一目录下,方便我们在脚本中替换材质的贴图。

二、脚本修改材质主要贴图

新建任意名称脚本,将以下代码放在新建脚本中。在Unity的project视图点击选中资源根目录(Asset文件夹),然后在工具栏中点击Assets/一键替换DDS的贴图。

[MenuItem("Assets/一键替换DDS的贴图")]public static void ToChangeMaterialsDDS(){//获取选中目录下的所有Material类型文件对象UnityEngine.Object[] m_objects = Selection.GetFiltered(typeof(Material), SelectionMode.DeepAssets);//选择的所有对象//遍历所有材质foreach (UnityEngine.Object item in m_objects){if (Path.GetExtension(AssetDatabase.GetAssetPath(item)) != "")//判断路径是否为空{string path = AssetDatabase.GetAssetPath(item);string oldTextruePath = AssetDatabase.GetAssetPath(((Material)item).mainTexture);//判断材质的mainTexture是否为.dds格式if (AssetDatabase.GetAssetPath(((Material)item).mainTexture).Contains(".dds")){//如果为.dds格式,获取其同名.png文件路径string newTextruePath = AssetDatabase.GetAssetPath(((Material)item).mainTexture).Replace(".dds", ".png");if (Path.GetExtension(newTextruePath) != "")//判断同目录下是否有同名.png文件{//则将材质的mainTexture改为转换好的同目录下的.png格式贴图,编辑器模式下使用AssetDatabase.LoadAssetAtPath读取资源((Material)item).mainTexture = AssetDatabase.LoadAssetAtPath<Texture>(newTextruePath);//替换成功后删除.dds格式的贴图文件AssetDatabase.DeleteAsset(oldTextruePath);Debug.Log(AssetDatabase.GetAssetPath(item) + "TextureName=" + AssetDatabase.GetAssetPath(((Material)item).mainTexture));}}}}//保存并刷新资源AssetDatabase.SaveAssets();AssetDatabase.Refresh();}

稍等片刻,即可看到所有dds图片都已经不见了,可以进行iOS打包了!

本文发布于:2024-01-30 17:15:47,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170660615021591.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:一键   格式   贴图   Unity   PNG
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23