当前位置:网站首页>不同物体使用同一材质,有不同的表现

不同物体使用同一材质,有不同的表现

2022-06-23 22:15:00 心前阳光

知识点

材质属性块 MaterialPropertyBlock
设置材质块颜色属性 MaterialPropertyBlock.SetColor
复制一份材质的属性块 Renderer.GetPropertyBlock
设置材质属性块 Renderer.SetPropertyBlock

实现

  1. 通过模型的Render获取材质块;
  2. 设置材质块的颜色属性;
  3. 设置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);
    }
}
原网站

版权声明
本文为[心前阳光]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_43796392/article/details/125376138