版本:Unity 6 (6000.0)
语言英语
  • C#

材质.SetColor

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每项建议,并在必要时进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public void SetColor(string name, 颜色 value);

声明

public void SetColor(int nameID, 颜色 value);

参数

nameID 属性名称 ID,使用 Shader.PropertyToID 获取。
name 属性名称。例如,内置渲染管线中的“_Color”,URP 中的“_BaseColor”。
value 要设置的颜色值。

描述

设置颜色值。

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

在使用标准着色器设置材质上的颜色值时,您应该注意,您可能需要使用 EnableKeyword 来启用之前未使用的着色器功能。有关详细信息,请阅读 通过脚本访问材质

颜色属性名称在着色器代码的 Properties 部分中定义。以下是 Unity 预制着色器中颜色属性的示例
_Color:材质的主要颜色(URP:_BaseColor)。您可以通过 color 属性访问此着色器属性。
_EmissionColor:材质的发光颜色。

其他资源:colorGetColorShader.PropertyToID着色器程序中的属性

//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>();

// Use SetColor to set the main color shader property cubeRenderer.material.SetColor("_Color", Color.red); // If your project uses URP, uncomment the following line and use it instead of the previous line // cubeRenderer.material.SetColor("_BaseColor", Color.red); } }