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

参数

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

描述

Sets a color value.

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

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

For example, the pre-built shaders in the Built-in Render Pipeline have the following color names:
"_Color" is the main color of a material. This can also be accessed via color property.
"_EmissionColor" is the emissive color of a material.

另请参阅:colorGetColorShader.PropertyToIDProperties 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 the custom color you created cubeRenderer.material.SetColor("_Color", customColor); } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961