【每天一個Unity技巧】批量修改物體為同一材質球

使用方法

  • 選中物體
  • 按住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;
            }
        }
    }

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容