UsePass 命令插入来自另一个 Shader 对象的指定通道。可以使用此命令来减少着色器源文件中的代码重复。
有关在 ShaderLab 代码中向通道添加名称的信息,请参阅 ShaderLab:向通道添加名称。
功能名称 | 内置渲染管线 | 通用渲染管线 (URP) | 高清渲染管线 (HDRP) | 自定义 SRP |
---|---|---|---|---|
UsePass | 是 | 是 | 是 | 是 |
签名 | 功能 |
---|---|
UsePass "Shader object name/PASS NAME IN UPPERCASE" |
从指定的 Shader 对象插入指定的通道。 如果指定的 Shader 对象包含多个子着色器,Unity 将遍历该子着色器,直到找到第一个包含具有给定名称的通道的受支持的子着色器。有关 Unity 如何确定是否支持某个子着色器的信息,请参阅 Shader 对象简介。 如果子着色器包含多个同名通道,Unity 将返回它找到的最后一个通道。 如果 Unity 没有找到匹配的通道,则会显示错误信息。 |
此示例代码创建一个名为 NamedPass 的 Shader 对象,其中包含名为 ExampleNamedPass 的通道。
Shader "Examples/ContainsNamedPass"
{
SubShader
{
Pass
{
Name "ExampleNamedPass"
// 此处是通道内容的其余部分。
}
}
}
此示例代码创建一个名为 UseNamedPass 的 Shader 对象,该对象使用上述示例代码中的指定通道。
Shader "Examples/UsesNamedPass"
{
SubShader
{
UsePass "Examples/ContainsNamedPass/EXAMPLENAMEDPASS"
}
}
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.