Объявление
public void SetOverrideTag(string tag, string val);Параметры
tag | Имя устанавливаемого тега. |
val | Имя устанавливаемого значения. Пустая строка для сброса флага переопределения. |
Описание
Устанавливает переопределяющий тег/значение для материала.
Установит тег/значение для материала, который переопределяет значение указанного тега из шейдера. Это можно использовать, чтобы убедиться, что заменяющие шейдеры (например, рендеринг DepthNormals) работают, даже если исходный шейдер поддерживает только определенный тип рендеринга. Например, если шейдер поддерживает только определенный тип рендеринга, но рендерится разными способами с использованием ключевых слов, можно использовать SetOverrideTag из пользовательского инспектора материалов, чтобы гарантировать правильное рендеринг материала даже при замене шейдера.
using UnityEngine;
public static class MaterialUtils
{
public enum BlendMode
{
Opaque,
Cutout,
Fade,
Transparent
}
public static void SetupBlendMode(Material material, BlendMode blendMode)
{
switch (blendMode)
{
case BlendMode.Opaque:
material.SetOverrideTag("RenderType", "");
material.DisableKeyword("_ALPHATEST_ON");
material.renderQueue = -1;
break;
case BlendMode.Cutout:
material.SetOverrideTag("RenderType", "TransparentCutout");
material.EnableKeyword("_ALPHATEST_ON");
material.renderQueue = 2450;
break;
}
}
}