首页 > 代码库 > 编辑器下动态更换对象材质
编辑器下动态更换对象材质
1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 using UnityEditor; 5 6 [ExecuteInEditMode] 7 public class SetMaterial : MonoBehaviour { 8 9 #if UNITY_EDITOR 10 [ContextMenu("SetMaterial")] 11 void SetObjsMaterial() 12 { 13 MeshRenderer[] renders = gameObject.GetComponentsInChildren<MeshRenderer>(); 14 15 Material resMat = Resources.Load<Material>("Default_Materiall"); 16 17 foreach (MeshRenderer render in renders) 18 { 19 render.material = resMat; 20 } 21 } 22 23 private void OnGUI() 24 { 25 MeshRenderer[] renders = gameObject.GetComponentsInChildren<MeshRenderer>(); 26 27 Material resMat = Resources.Load<Material>("Default_Materiall"); 28 29 foreach (MeshRenderer render in renders) 30 { 31 render.material = resMat; 32 } 33 } 34 #endif 35 }
说明:
[ExecuteInEditMode] : 表示在编辑器模式下执行OnGUI和Update
[ContextMenu("SetMaterial")] : 在编辑器下手动执行自定义方法
编辑器下动态更换对象材质
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。