知识点
材质属性块 MaterialPropertyBlock
设置材质块颜色属性 MaterialPropertyBlock.SetColor
复制一份材质的属性块 Renderer.GetPropertyBlock
设置材质属性块 Renderer.SetPropertyBlock
实现
- 通过模型的Render获取材质块;
- 设置材质块的颜色属性;
- 设置Render的材质块。
using UnityEngine;
public class NotSameDisplay : MonoBehaviour
{
Renderer render;
void Start()
{
render = GetComponent<Renderer>();
ChangeMaterilaColor();
}
void ChangeMaterilaColor()
{
MaterialPropertyBlock newBlock = new MaterialPropertyBlock();
//render的材质数值复制到newBlock中
render.GetPropertyBlock(newBlock);
//参数一:shader中对应的属性名
//选择材质 点击右上角的齿轮 选择Edit Shader 在Properties块中可以查看
//参数二:属性对应的值
newBlock.SetColor("_Color",Color.red);
//将新值复制到属性中
render.SetPropertyBlock(newBlock);
}
}