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

Material.SetOverrideTag

Declaration

public void SetOverrideTag(string tag, string val);

Параметры

Параметр Описание
метка Имя тега для установки.
выбор Имя задаваемого значения. Пустая строка сбрасывает флаг переопределения.

Описание

Задаёт у материала переопределяющий тег или значение.

Установит тег/значение на материале, которое переопределяет значение указанного тега от шейдера. Это может быть использовано для обеспечения того, чтобы заменяющие шейдеры (например, рендеринг DepthNormals) работали, даже если оригинальный шейдер поддерживает только определенный тип рендеринга. Например, если шейдер поддерживает только определенный тип рендеринга, но рендеринг выполняется многими способами с помощью ключевых слов, SetOverrideTag может быть использован из собственного инспектора материалов для обеспечения того, чтобы материал рендеринг правильно, даже если шейдер заменен. Обратите внимание, что переопределение тега LightMode не имеет никакого эффекта.

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; } } }