使用方法
- 選中物體
- 按住Ctrl選中需要修改為的材質球
- 點擊Tools/changeMaterial按鈕
using UnityEngine;
using UnityEditor;
public class ChangeMaterial : MonoBehaviour
{
[MenuItem("Tools/changeMaterial")]
public static void change()
{
Object[] m_objects = Selection.GetFiltered(typeof(Material), SelectionMode.DeepAssets);//選擇的所以對象
if (m_objects.Length != 1)
{
Debug.Log("選擇的材質不唯一");
return;
}
foreach (GameObject go in Selection.gameObjects)
{
FindMater(go, m_objects[0] as Material);
}
Debug.Log("Complete! ");
}
public static void FindMater(GameObject go, Material m)
{
if (go.GetComponent<MeshRenderer>() != null)
{
go.GetComponent<MeshRenderer>().material = m;
}
foreach (Transform child in go.transform)
{
FindMater(child.gameObject, m);
if (child.GetComponent<MeshRenderer>() != null)
{
child.GetComponent<MeshRenderer>().material = m;
}
}
}
}