Version: 2021.3

Material.SetOverrideTag

切换到手册
public void SetOverrideTag (string tag, string val);

参数

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; } } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961