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;
}
}
三、调用改变设备部件的材质球方法,且指定对应的模型名称即可
注意:这里加载的材质球位置如下: