您可以使用 Material.GetTag API 从 C# 脚本中读取 SubShader 标签,例如
using UnityEngine;
public class Example : MonoBehaviour
{
// Attach this to a gameObject that has a Renderer component
string tagName = "ExampleTagName";
void Start()
{
Renderer myRenderer = GetComponent<Renderer>();
string tagValue = myRenderer.material.GetTag(ExampleTagName, true, "Tag not found");
Debug.Log(tagValue);
}
}
您可以使用 Shader.renderQueue 读取 着色器在 GPU 上运行的程序。 更多信息
在 词汇表 中查看 对象的活动 SubShader 的队列标签值。
默认情况下,Unity 会在 [Queue] 标签中指定的渲染队列中渲染几何体。您可以按材质对该值进行覆盖。在 Unity 编辑器中,您可以在 材质检查器 中设置 渲染队列 属性来执行此操作。在 C# 脚本中,您可以通过使用 Rendering.RenderQueue 枚举设置 Material.renderQueue 的值来执行此操作。
要从 C# 脚本一段代码,允许您创建自己的组件、触发游戏事件、随着时间的推移修改组件属性以及以您喜欢的任何方式响应用户输入。 更多信息
在 词汇表 中查看 中访问 Pass 标签的值,您可以使用 Shader.FindPassTagValue API。这适用于 Unity 的预定义 Pass 标签以及您创建的自定义 Pass 标签。
Material.SetShaderPassEnabled 和 ShaderTagId 使用 LightMode
标签的值来确定 Unity 如何处理给定的 Pass。
在可脚本化的 渲染管道一系列操作,将场景的内容显示在屏幕上。Unity 允许您选择预构建的渲染管道,或编写自己的渲染管道。 更多信息
在 词汇表 中查看 中,您可以为 LightMode
标签创建自定义值。然后,您可以使用这些自定义值来确定在对 ScriptableRenderContext.DrawRenderers 的特定调用期间要绘制哪些 Pass,方法是配置 DrawingSettings 结构体。有关更多信息和代码示例,请参阅 在自定义可脚本化渲染管道中创建简单的渲染循环。