批量选择图片并转换为材质
- 用Selection.GetFiltered来表示选择到的物体
- 第一个参数表示仅检索此类型的对象。
- 第二个参数 SelectionMode.Assets 表示仅返回 Asset 目录中的资源对象。
- 先检查当前路径下是否有此名称的材质存在,若存在则不生成新的材质。
- 创建一个材质实例。
- 将材质创建为Asset资源。
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
/// <summary> 照片转换为对应的材质 </summary>
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
}
文章来源地址https://www.toymoban.com/news/detail-544279.html
文章来源:https://www.toymoban.com/news/detail-544279.html
到了这里,关于Unity 批量选择图片并转换为材质的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!