Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


ShaderTagId

Unique identifier for a shader tag name or value.
Read time 2 minutesLast updated 6 days ago

Definition

public struct ShaderTagId : IEquatable<ShaderTagId>

Remarks

Refers to either the name or value of a SubShader or Pass tag. This struct is used as an efficient representation of a "unique" tag string, meaning that two
ShaderTagId
s referring from the same string are equal.

Examples

using UnityEditor;using UnityEngine;using UnityEngine.Rendering;// Adds a new Editor menu item called Example. Select a shader// asset in the Project window, then select// Example > PrintLightModeTagExample from the Editor menu. The value of all// "LightMode" tags present in any pass of the shader will be printed to// the console.public class PrintLightModeTagExample{ [MenuItem("Example/PrintLightModeTagExample")] static void MenuCallback() { // If the selected object is a shader... if (Selection.activeObject is Shader selectedShader) { // For each subshader... ShaderData selectedShaderData = ShaderUtil.GetShaderData(selectedShader); for (int subShaderIndex = 0; subShaderIndex < selectedShaderData.SubshaderCount; ++subShaderIndex) { // For each pass... ShaderData.Subshader subShaderData = selectedShaderData.GetSubshader(subShaderIndex); for (int passIndex = 0; passIndex < subShaderData.PassCount; ++passIndex) { ShaderData.Pass passData = subShaderData.GetPass(passIndex); // If the pass has a "LightMode" tag, print its value ShaderTagId lightModeValue = passData.FindTagValue(new ShaderTagId("LightMode")); if (lightModeValue != ShaderTagId.none) { Debug.Log($"Pass '{passData.Name}' in SubShader {subShaderIndex} of " + $"Shader '{selectedShader.name}' has LightMode '{lightModeValue.name}'."); } } } } }}

Static Fields

Value

Description

noneDescribes a
ShaderTagId
not referring to any string.

Constructors

Constructor

Description

ShaderTagId(System.String)Gets or creates a
ShaderTagId
representing the given string.

Properties

Property

Description

nameGets the string this
ShaderTagId
refers to.

Methods

Method

Description

EqualsChecks if this shader tag identifier and the object refer to the same string.
GetHashCodeConverts this
ShaderTagId
to a hash code.

Operators

Operator

Description

operator ==Checks if two
ShaderTagId
s refer to the same string.
ShaderTagIdConverts a string to a
ShaderTagId
.
stringConverts a
ShaderTagId
to a string.
operator !=Checks if two
ShaderTagId
s aren't equal.