nameID | 属性名称 ID,使用 Shader.PropertyToID 获取。 |
name | 属性名称,例如“_Color”。 |
value | 要设置的颜色值。 |
Sets a color value.
许多着色器使用多种颜色。使用 SetColor 可更改颜色(由着色器属性名称或唯一的属性名称 ID 标识)。
使用标准着色器对材质设置颜色值时应该知道,可能需要使用 EnableKeyword 启用以前未使用的着色器功能。有关更多详细信息,请参阅Accessing Materials via Script。
Unity 内置着色器使用的常用颜色名称:\
"_Color"
是材质的主色。它还可以通过 color 属性进行访问。\
"_EmissionColor"
是材质的发光颜色。
另请参阅:color、GetColor、Shader.PropertyToID、Properties in Shader Programs。
//Attach this script to any GameObject in your scene to spawn a cube and change the material color using UnityEngine;
public class Example : MonoBehaviour { void Start() { // Create a new cube primitive to set the color on GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
// Get the Renderer component from the new cube var cubeRenderer = cube.GetComponent<Renderer>();
// Call SetColor using the shader property name "_Color" and setting the color to red cubeRenderer.material.SetColor("_Color", Color.red); } }
//Attach this script to any GameObject in your scene to spawn a cube and change the material color to a custom color using UnityEngine;
public class Example : MonoBehaviour { void Start() { // Create a new cube primitive to set the color on GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
// Get the Renderer component from the new cube var cubeRenderer = cube.GetComponent<Renderer>();
// Create a new RGBA color using the Color constructor and store it in a variable Color customColor = new Color(0.4f, 0.9f, 0.7f, 1.0f);
// Call SetColor using the shader property name "_Color" and setting the color to red cubeRenderer.material.SetColor("_Color", customColor); } }