nameID | 属性名称 ID,使用 Shader.PropertyToID 获取。 |
name | 属性名称,例如“_Color”。 |
value | 要设置的颜色值。 |
设置指定的颜色值。
许多着色器使用多种颜色。使用 SetColor 可更改颜色(由着色器属性名称或唯一的属性名称 ID 标识)。
使用标准着色器对材质设置颜色值时应该知道,可能需要使用 EnableKeyword 启用以前未使用的着色器功能。有关更多详细信息,请参阅Accessing Materials via Script。
Common color names used by Unity's builtin shaders:
"_Color"
is the main color of a material. This can also be accessed via color property.
"_EmissionColor"
is the emissive color of a material.
另请参阅:color、GetColor、Shader.PropertyToID、Properties in Shader Programs。
//Attach this script to a GameObject that has a Renderer component
using UnityEngine;
public class Example : MonoBehaviour { void Start() { //Fetch the Renderer from the GameObject Renderer rend = GetComponent<Renderer>();
//Set the main Color of the Material to green rend.material.shader = Shader.Find("_Color"); rend.material.SetColor("_Color", Color.green);
//Find the Specular shader and change its Color to red rend.material.shader = Shader.Find("Specular"); rend.material.SetColor("_SpecColor", Color.red); } }