Unity 批量选择图片并转换为材质

批量选择图片并转换为材质

  1. 用Selection.GetFiltered来表示选择到的物体
    • 第一个参数表示仅检索此类型的对象。
    • 第二个参数 SelectionMode.Assets 表示仅返回 Asset 目录中的资源对象。
  2. 先检查当前路径下是否有此名称的材质存在,若存在则不生成新的材质。
  3. 创建一个材质实例。
  4. 将材质创建为Asset资源。
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;///  照片转换为对应的材质 
public class ImageTransMaterial : MonoBehaviour
{[Header("材质生成地址")]public string materialPath;#if UNITY_EDITOR[MenuItem("GameObject/Create Materials")]public void SetMat(){Object[] m_objects = Selection.GetFiltered(typeof(Texture2D), SelectionMode.Assets); //选择到的物体foreach (var i in m_objects){Debug.Log(i.name);if (AssetDatabase.LoadAssetAtPath( materialPath + i.name + ".mat",typeof(Material))) //判断当前材质是否存在{continue;}else{Material mat = new Material(Shader.Find("Legacy Shaders/Diffuse")); //实例一个新的材质mat.SetTexture("_MainTex", i as Texture2D); //设置材质的贴图AssetDatabase.CreateAsset(mat,materialPath + i.name + ".mat"); //创建材质,并设置材质保存的位置 (需要修改储存位置)}}}
#endif
}

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部