这边我是用两种办法去修改物体的材质
方法一:将材质先做成你想要的shader类型,我这边想让物体做透明变化所以提前将材质的shader设置成
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ShaderChange : MonoBehaviour
{
public Material mat;
public GameObject go;
public Button bt;
void Start()
{
bt.onClick.AddListener(ChangeShaderTwo);
}
public void ChangeShader()
{
go.GetComponent<MeshRenderer>().material = mat;
}
public void ChangeShaderTwo()
{
Material material = new Material(Shader.Find("Legacy Shaders/Transparent/Diffuse"));
material.color = new Color(0, 1, 0, 0.3f);
GetComponent<Renderer>().material = material;
}
}
changshader 方法直接替换面板的material
直接将做好的材质拖在面板上就可以。
方法二:如上代码ChangeShaderTwo,动态生成一个材质,然后再进行替换。