UsePass 命令插入来自另一个 Shader 对象的指定通道。可以使用此命令来减少着色器源文件中的代码重复。
有关在 ShaderLab 代码中向通道添加名称的信息,请参阅 ShaderLab:向通道添加名称。
功能名称 | 内置渲染管线 | 通用渲染管线 (URP) | 高清渲染管线 (HDRP) | 自定义 SRP |
---|---|---|---|---|
UsePass | 是 | 是 | 是 | 是 |
签名 | 功能 |
---|---|
UsePass "Shader object name/PASS NAME IN UPPERCASE" |
Inserts the named Pass from the named Shader object. If the named Shader object contains more than one SubShader, Unity iterates over the SubShaders until it finds the first supported SubShader that contains a Pass with the given name. For information on how Unity determines whether a SubShader is supported, see Shader objects introduction. If the SubShader contains more than one Pass with the same name, Unity returns the last Pass it finds. If Unity does not find a matching Pass, it shows the error shader. |
此示例代码创建一个名为 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.