using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; [CustomEditor(typeof(SwitchMaterials))] public class SwitchMaterialsEditor : Editor { SwitchMaterials inst; void OnEnable() { inst = target as SwitchMaterials; } public override void OnInspectorGUI() { base.OnInspectorGUI(); // if(GUILayout.Button("Switch", GUILayout.Height(50))) { foreach(Transform t in inst.root.GetComponentsInChildren()) { if(t.gameObject.activeSelf && t.GetComponent()) { SwitchMat(t); } } Debug.Log("Done!"); } // if (GUILayout.Button("ReplaceMaterils", GUILayout.Height(50))) { Material[] materials = inst.root.GetComponent().sharedMaterials; Material[] mats = new Material[materials.Length]; for(int i = 0; i < materials.Length; ++i) { mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/" + materials[i].name.Split('.')[0] + ".mat", typeof(Material)) as Material; } inst.root.GetComponent().sharedMaterials = mats; Debug.Log("Done!"); } } void SwitchMat(Transform t) { MeshRenderer meshRenderer = t.GetComponent(); Material[] mats = new Material[meshRenderer.sharedMaterials.Length]; for(int i = 0; i < mats.Length; ++i) { switch (meshRenderer.sharedMaterials[i].name) { case "×ÔÈ»": break; case "MI_Bamboo_Leaf_01 (Instance)": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Bamboo_Leaf_01.mat", typeof(Material)) as Material; break; case "MI_Bamboo_Leaf_02 (Instance)": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Bamboo_Leaf_02.mat", typeof(Material)) as Material; break; case "MI_Bamboo_Leaf_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Bamboo_Leaf_01.mat", typeof(Material)) as Material; break; case "MI_Bamboo_Leaf_02": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Bamboo_Leaf_02.mat", typeof(Material)) as Material; break; case "MI_BambooBaluster_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_BambooBaluster_01.mat", typeof(Material)) as Material; break; case "MI_Dandelion_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Dandelion_01.mat", typeof(Material)) as Material; break; case "MI_Floor_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Floor_01.mat", typeof(Material)) as Material; break; case "MI_FX_Leaf_01 (Instance)": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_FX_Leaf_01.mat", typeof(Material)) as Material; break; case "MI_FX_BambooLeaf (Instance)": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_FX_BambooLeaf.mat", typeof(Material)) as Material; break; case "MI_Grass_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Grass_01.mat", typeof(Material)) as Material; break; case "MI_Landscape_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Landscape_01.mat", typeof(Material)) as Material; break; case "MI_LandscapeMesh_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_LandscapeMesh_01.mat", typeof(Material)) as Material; break; case "MI_Plant_Flower_01 (Instance)": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Plant_Flower_01.mat", typeof(Material)) as Material; break; case "MI_Plant_Flower_02 (Instance)": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Plant_Flower_02.mat", typeof(Material)) as Material; break; case "MI_Plant_Leaf_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Plant_Leaf_01.mat", typeof(Material)) as Material; break; case "MI_Plant_Leaf_02": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Plant_Leaf_02.mat", typeof(Material)) as Material; break; case "MI_Plant_Leaf_03": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Plant_Leaf_03.mat", typeof(Material)) as Material; break; case "MI_Plant_Leaf_04": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Plant_Leaf_04.mat", typeof(Material)) as Material; break; case "MI_Plant_Leaf_05": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Plant_Leaf_05.mat", typeof(Material)) as Material; break; case "MI_Plant_Lotus_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Plant_Lotus_01.mat", typeof(Material)) as Material; break; case "MI_Plant_Pine_Leaf_01 (Instance)": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Plant_Pine_Leaf_01.mat", typeof(Material)) as Material; break; case "MI_Plant_Trunk_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Plant_Trunk_01.mat", typeof(Material)) as Material; break; case "MI_Plant_Trunk_02": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Plant_Trunk_02.mat", typeof(Material)) as Material; break; case "MI_Plant_Trunk_03": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Plant_Trunk_03.mat", typeof(Material)) as Material; break; case "MI_Rock_01 (Instance)": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Rock_01.mat", typeof(Material)) as Material; break; case "MI_Rock_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Rock_01.mat", typeof(Material)) as Material; break; case "MI_Rock_01_Grass": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Rock_01_Grass.mat", typeof(Material)) as Material; break; case "MI_Stone_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Stone_01.mat", typeof(Material)) as Material; break; case "MI_Stone_01_VertexColor": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Stone_01_VertexColor.mat", typeof(Material)) as Material; break; case "MI_Stone_03": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Stone_03.mat", typeof(Material)) as Material; break; case "MI_Stone_04": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Stone_04.mat", typeof(Material)) as Material; break; case "MI_Stone_05": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_StoMI_Stone_05ne_01.mat", typeof(Material)) as Material; break; case "MI_StoneBrick_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_StoneBrick_01.mat", typeof(Material)) as Material; break; case "MI_StoneBrick_02_Water": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_StoneBrick_02_Water.mat", typeof(Material)) as Material; break; case "MI_StoneBrick_03": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_StoneBrick_03.mat", typeof(Material)) as Material; break; case "MI_StoneFence_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_StoneFence_01.mat", typeof(Material)) as Material; break; case "MI_StoneLamp_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_StoneLamp_01.mat", typeof(Material)) as Material; break; case "MI_StoneTable_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_StoneTable_01.mat", typeof(Material)) as Material; break; case "MI_Water_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Water_01.mat", typeof(Material)) as Material; break; case "MI_Water_02": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Water_02.mat", typeof(Material)) as Material; break; case "MI_Wood_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Wood_01.mat", typeof(Material)) as Material; break; case "MI_Wood_02": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Wood_02.mat", typeof(Material)) as Material; break; case "MI_Wood_03": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_Wood_03.mat", typeof(Material)) as Material; break; case "·¿×Ó": break; case "MI_RedWood_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_RedWood_01.mat", typeof(Material)) as Material; break; case "MI_RedWood_02": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_RedWood_02.mat", typeof(Material)) as Material; break; case "MI_RedWood_03": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_RedWood_03.mat", typeof(Material)) as Material; break; case "MI_Roof_01A_Wood": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_Roof_01A_Wood.mat", typeof(Material)) as Material; break; case "MI_Roof_01A_RedWood": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_Roof_01A_RedWood.mat", typeof(Material)) as Material; break; case "MI_Gold": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_Gold.mat", typeof(Material)) as Material; break; case "MI_Tile": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_Tile.mat", typeof(Material)) as Material; break; case "MI_MetalMask_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_MetalMask_01.mat", typeof(Material)) as Material; break; case "MI_MetalMask_02": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_MetalMask_02.mat", typeof(Material)) as Material; break; case "MI_MetalMask_03": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_MetalMask_03.mat", typeof(Material)) as Material; break; case "MI_Wall_03_Wood_A": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_Wall_03_Wood_A.mat", typeof(Material)) as Material; break; case "MI_Wall_03_Wood_B": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_Wall_03_Wood_B.mat", typeof(Material)) as Material; break; case "MI_Roof_01_RedWood": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_Roof_01_RedWood.mat", typeof(Material)) as Material; break; case "MI_Roof_01B_Wood": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_Roof_01B_Wood.mat", typeof(Material)) as Material; break; case "MI_Wall_Stone_01_B": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_Wall_Stone_01_B.mat", typeof(Material)) as Material; break; case "MI_Window_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_Window_01.mat", typeof(Material)) as Material; break; case "MI_Window_01_Wood": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Building/House/MI_Window_01_Wood.mat", typeof(Material)) as Material; break; case "Îí": break; case "MI_FogCard": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Fog/MI_FogCard.mat", typeof(Material)) as Material; break; case "MI_FogCard_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Fog/MI_FogCard_01.mat", typeof(Material)) as Material; break; case "MI_FogCard_02": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Fog/MI_FogCard_02.mat", typeof(Material)) as Material; break; case "MI_FogCard_Floor_01": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Fog/MI_FogCard_Floor_01.mat", typeof(Material)) as Material; break; case "MI_FogCard_Floor_02": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Fog/MI_FogCard_Floor_02.mat", typeof(Material)) as Material; break; case "MI_FogCard_Floor_03": mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/Fog/MI_FogCard_Floor_03.mat", typeof(Material)) as Material; break; case "Fbx Default Material": //mats[i] = AssetDatabase.LoadAssetAtPath("Assets/CartoonOriental/Scene/Materials/MI_StoneBrick_01.mat", typeof(Material)) as Material; break; } } meshRenderer.sharedMaterials = mats; } }