欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity实现动态修改模型材质球

程序员文章站 2022-06-10 21:00:13
...

一、定义需要替换的材质球(且加载该材质球)

 private Material _HighLightMat;                                         //实现闪烁高亮效果材质球
_HighLightMat = Resources.Load("Prefabs/HighlightMat/gradient_HightBlue") as Material;

二、编写修改材质球的方法

 /// <summary>
        /// 改变设备部件的材质球
        /// </summary>
        /// <param name="equipmentPartName">设备部件的名称</param>
        private void ChangeSelectedEquipmentPartMat(string equipmentPartName)
        {
            if (!string.IsNullOrEmpty(equipmentPartName))
            {
                GameObject go = GameObject.Find(equipmentPartName);
                Material mat = go.GetComponent<Renderer>().material;
                _EquipmentPartsOriginalMatDic.Add(equipmentPartName,mat);
                
                go.GetComponent<Renderer>().material = _HighLightMat;
            }
        }

三、调用改变设备部件的材质球方法,且指定对应的模型名称即可 

注意:这里加载的材质球位置如下:

Unity实现动态修改模型材质球