【毎日1つのUnityテクニック】物体を同じシェーダに一括修正
1227 ワード
使用方法選択物体 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() != null)
{
go.GetComponent().material = m;
}
foreach (Transform child in go.transform)
{
FindMater(child.gameObject, m);
if (child.GetComponent() != null)
{
child.GetComponent().material = m;
}
}
}
}