Version: 2017.3
public void SetColor (string name, Color value);
public void SetColor (int nameID, Color value);

参数

nameID 属性名称 ID,使用 Shader.PropertyToID 获取。
name 属性名称,例如“_Color”。
value 要设置的颜色值。

描述

设置指定的颜色值。

许多着色器使用多种颜色。使用 SetColor 可更改颜色(由着色器属性名称或唯一的属性名称 ID 标识)。

使用标准着色器对材质设置颜色值时应该知道,可能需要使用 EnableKeyword 启用以前未使用的着色器功能。有关更多详细信息,请参阅Accessing Materials via Script

Unity 内置着色器使用的常用颜色名称:\ "_Color" 是材质的主色。它还可以通过 color 属性进行访问。\ "_EmissionColor" 是材质的发光颜色。

另请参阅:colorGetColorShader.PropertyToIDProperties in Shader Programs

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void Start() { Renderer rend = GetComponent<Renderer>(); rend.material.shader = Shader.Find("Specular"); rend.material.SetColor("_SpecColor", Color.red); } }