keyword | 要启用或禁用的 LocalKeyword 关键字。 |
value | 所需的关键字状态。 |
为该计算着色器设置本地着色器关键字的状态。
着色器关键字决定 Unity 使用哪些着色器变体。有关使用 本地着色器关键字 和 全局着色器关键字 以及它们如何交互的信息,请参阅 使用 C# 脚本进行着色器关键字。
当 value
为 true
时,此函数将调用 EnableKeyword。否则,它将调用 DisableKeyword。
如果 LocalKeyword 不存在于 keywordSpace 中,则此函数无效。
以下示例切换计算着色器中所有本地着色器关键字的状态。
using UnityEngine; using UnityEngine.Rendering;
public class Example : MonoBehaviour { public ComputeShader computeShader;
void Start() { // Get all the local keywords that affect the Compute Shader var keywordSpace = computeShader.keywordSpace;
// Iterate over the local keywords foreach (var localKeyword in keywordSpace.keywords) { // Get the current state of the local keyword bool state = computeShader.IsKeywordEnabled(localKeyword);
// Toggle the state computeShader.SetKeyword(localKeyword, !state); } } }