Unity 6.3
0 онлайн 76 гостей 3 в системе
Вход

ShaderTagId

структура в UnityEngine.Rendering

Выполнено в:UnityEngine.CoreModule

Описание

Уникальный идентификатор для имени или значения тега шейдера.

Относится к имени или значению SubShader или Пропуск тег. Эта структура служит компактным представлением «уникальной» строки-тега, то есть два ShaderTagIds, относящиеся к одной и той же строке, равны.

Дополнительные ресурсы: DrawingSettings, RendererListParams, ShaderData.Subshader.FindTagValue.

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}'.");
                    }
                }
            }
        }
    }
}

Статические свойства

Свойство Описание
noneОписывает ShaderTagId, не относящийся к какой-либо строке.

Свойства

Свойство Описание
nameПолучает строку, на которую ссылается ShaderTagId.

Конструкторы

Конструктор Описание
ShaderTagIdПолучает или создает ShaderTagId, представляющий заданную строку.

Открытые методы

Метод Описание
EqualsПроверяет, указывают ли идентификатор тега шейдера и объект на одну и ту же строку.
GetHashCodeПреобразует это ShaderTagId в хеш-код.

Операторы

Оператор Описание
оператор!=Проверяет, не равны ли два ShaderTagIds.
оператор ==Проверяет, не относятся ли два ShaderTagIds к одной и той же строке.
ShaderTagIdПреобразует строку в ShaderTagId.
stringПреобразует ShaderTagId в строку.