tag | 要设置的标记的名称。 |
val | 要设置的值的名称。用于清除重写标志的空字符串。 |
对材质设置重写标记/值。
将对材质设置一个标记/值,它会重写着色器中所指标记的值。这可以用于确保替换着色器(如渲染 DepthNormals)即使在原始着色器仅支持特定渲染器类型时也可正常工作。例如,如果着色器仅支持特定着色器类型,但是使用关键字以许多方式进行渲染,则 SetOverrideTag 可以用于自定义材质 Inspector ,以确保材质即使在替换着色器时也可正确渲染。
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;
}
}
}