当前位置:   article > 正文

Unity 批量修改预制体的材质贴图Generate Mip Maps勾选状态

generate mip maps

Unity 批量修改预制体的材质贴图Generate Mip Maps勾选状态

需求

编辑器下批量模型贴图的Generate Mip Maps的勾选状态
在这里插入图片描述

解决

  • 获取预制体的MeshRenderer上的材质球
  • 获取材质球上的texture并得到texture资源路径
  • 利用TextureImpoter修改贴图选项并保存
public static void ModelDisableGenerateMipMaps()
{
        FileInfo[] fs = new DirectoryInfo(prefabPath).GetFiles("*.prefab", SearchOption.AllDirectories);
        // Assets/xxx 路径形式
        string modelPath = "Assets" + prefabPath.Replace(Application.dataPath, "");
        for (int i = 0; i < fs.Length; i++)
        {
            FileInfo f = fs[i];
            string absFilePath = modelPath + f.Name;
            GameObject temp = AssetDatabase.LoadAssetAtPath<GameObject>(absFilePath);
            MeshRenderer meshRenderer = temp.GetComponent<MeshRenderer>();
            if (meshRenderer)
            {
                Material material = meshRenderer.sharedMaterial;
                string imgPath = AssetDatabase.GetAssetPath(material.mainTexture);
                // Debug.Log(imgPath);
                TextureImporter textureImporter = TextureImporter.GetAtPath(imgPath) as TextureImporter;
                if (textureImporter.mipmapEnabled)
                {
                    textureImporter.mipmapEnabled = false;
                    textureImporter.SaveAndReimport();
                    AssetDatabase.Refresh();
                }
            }
            else
            {
                Debug.LogError("不存在meshRenderer:" + f.Name);
            }
        }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/112736
推荐阅读
相关标签
  

闽ICP备14008679号