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

Shader

UnityEngine 中的类

/

继承自:Object

/

实现于:UnityEngine.CoreModule

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

描述

用于所有渲染的着色器脚本。

大部分高级渲染都是通过 Material 类控制的。Shader 类主要用于检查着色器是否可以在用户的硬件上运行(isSupported 属性),设置全局着色器属性和关键字,以及按名称查找着色器(Find 方法)。

其他资源:Material 类,材质ShaderLab 文档

静态属性

enabledGlobalKeywords包含当前启用的全局着色器关键字的数组。
globalKeywords包含当前存在的全局着色器关键字的数组。这包括启用和禁用的全局着色器关键字。
globalMaximumLOD所有着色器的着色器 LOD 级别。
globalRenderPipeline当前使用的渲染管线。
maximumChunksOverride设置 Unity 加载并保存在内存中的着色器变体块数量的限制。

属性

isSupported此着色器可以在最终用户的显卡上运行吗? (只读)
keywordSpace此着色器的本地关键字空间。
maximumLOD此着色器的着色器 LOD 级别。
passCount返回活动 SubShader 上的着色器通道数。
renderQueue此着色器的渲染队列。 (只读)
subshaderCount返回此着色器中的 SubShader 数量。

公共方法

FindPassTagValue在着色器的活动 SubShader 上搜索由 tagName 指定的标签,并返回标签的值。
FindPropertyIndex按名称查找着色器属性的索引。
FindSubshaderTagValue在由 subshaderIndex 指定的 SubShader 上搜索由 tagName 指定的标签,并返回标签的值。
FindTextureStack查找纹理所属的纹理堆栈的名称。
GetDependency返回依赖项着色器。
GetPassCountInSubshader返回给定 SubShader 中的通道数。
GetPropertyAttributes返回一个字符串数组,其中包含指定索引处的着色器属性的属性。
GetPropertyCount返回此着色器中的属性数量。
GetPropertyDefaultFloatValue返回指定索引处的着色器属性的默认浮点值。
GetPropertyDefaultIntValue返回指定索引处的着色器属性的默认整数值。
GetPropertyDefaultVectorValue返回指定索引处的着色器属性的默认 Vector4 值。
GetPropertyDescription返回指定索引处的着色器属性的描述字符串。
GetPropertyFlags返回指定索引处的着色器属性的 ShaderPropertyFlags。
GetPropertyName返回指定索引处的着色器属性的名称。
GetPropertyNameId返回指定索引处的着色器属性的 nameId。
GetPropertyRangeLimits返回指定索引处的 Range 属性的最小值和最大值限制。
GetPropertyTextureDefaultName返回指定索引处的 Texture 着色器属性的默认 Texture 名称。
GetPropertyTextureDimension返回指定索引处的 Texture 着色器属性的 TextureDimension。
GetPropertyType返回指定索引处属性的 ShaderPropertyType。

静态方法

DisableKeyword禁用全局着色器关键字。
EnableKeyword启用全局着色器关键字。
Find查找具有给定名称的着色器。如果未找到着色器,则返回 null。
GetGlobalColor获取之前使用 SetGlobalColor 设置的所有着色器的全局颜色属性。
GetGlobalFloat获取之前使用 SetGlobalFloat 设置的所有着色器的全局浮点属性。
GetGlobalFloatArray获取之前使用 SetGlobalFloatArray 设置的所有着色器的全局浮点数组。
GetGlobalInt此方法已弃用。请改用 GetGlobalFloat 或 GetGlobalInteger。
GetGlobalInteger获取之前使用 SetGlobalInteger 设置的所有着色器的全局整数属性。
GetGlobalMatrix获取之前使用 SetGlobalMatrix 设置的所有着色器的全局矩阵属性。
GetGlobalMatrixArray获取之前使用 SetGlobalMatrixArray 设置的所有着色器的全局矩阵数组。
GetGlobalTexture获取之前使用 SetGlobalTexture 设置的所有着色器的全局纹理属性。
GetGlobalVector获取之前使用 SetGlobalVector 设置的所有着色器的全局向量属性。
GetGlobalVectorArray获取之前使用 SetGlobalVectorArray 设置的所有着色器的全局向量数组。
IsKeywordEnabled检查全局着色器关键字是否已启用。
PropertyToID获取着色器属性名称的唯一标识符。
SetGlobalBuffer为所有着色器设置全局缓冲区属性。
SetGlobalColor为所有着色器设置全局颜色属性。
SetGlobalConstantBuffer将 ComputeBuffer 或 GraphicsBuffer 作为命名常量缓冲区设置为所有着色器类型。
SetGlobalFloat为所有着色器设置全局浮点属性。
SetGlobalFloatArray为所有着色器设置全局浮点数组属性。
SetGlobalInt此方法已弃用。请改用 SetGlobalFloat 或 SetGlobalInteger。
SetGlobalInteger为所有着色器设置全局整数属性。
SetGlobalMatrix为所有着色器设置全局矩阵属性。
SetGlobalMatrixArray为所有着色器设置全局矩阵数组属性。
SetGlobalRayTracingAccelerationStructure为所有着色器设置全局 RayTracingAccelerationStructure 属性。
SetGlobalTexture为所有着色器设置全局纹理属性。
SetGlobalVector为所有着色器设置全局向量属性。
SetGlobalVectorArray为所有着色器设置全局向量数组属性。
SetKeyword设置全局着色器关键字的状态。
WarmupAllShaders预热当前内存中所有着色器的所有着色器变体。

继承的成员

属性

hideFlags对象是否应隐藏、与场景一起保存或用户可修改?
name对象的名称。

公共方法

GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

静态方法

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议您改用 Destroy。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索类型为 type 的任何活动加载的对象。
FindFirstObjectByType检索类型为 type 的第一个活动加载的对象。
FindObjectsByType检索类型为 type 的所有加载对象的列表。
Instantiate克隆对象 original 并返回克隆。
InstantiateAsync捕获原始对象(必须与某些 GameObject 相关)的快照,并返回 AsyncInstantiateOperation。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用以查看它们是否引用同一个对象。