需求
多个物体共用一个material材质球。且还需要表现不同参数。
方案:
直接对每个物体更改材质属性
每个物体的材质成为了不同的材质实例(观察物体的检视面板,材质后面增加了(instance))
使用MaterialPropertyBlock
MaterialPropertyBlock propertyBlock = new MaterialPropertyBlock();
GetComponent<Renderer>().GetPropertyBlock(propertyBlock);
propertyBlock.SetColor("_Color", new Color(0.5f, 0, 0, 1));
GetComponent<Renderer>().SetPropertyBlock(propertyBlock);
以特定数据作为依照变更材质属性
- 模型的世界坐标可以作为特殊变量:虽然使用同一个材质,但模型的世界坐标不同,可以用来做随机数种子。(一旦模型世界坐标变动,效果也变动)