版本: Unity 6 (6000.0)
语言英语
  • C#

ComputeShader.SetKeyword

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每个建议更改,并在适用时进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public void SetKeyword(ref Rendering.LocalKeyword keyword, bool value);

参数

keyword 要启用或禁用的 LocalKeyword 关键字。
value 所需的关键字状态。

描述

为该计算着色器设置本地着色器关键字的状态。

着色器关键字决定 Unity 使用哪些着色器变体。有关使用 本地着色器关键字全局着色器关键字 以及它们如何交互的信息,请参阅 使用 C# 脚本进行着色器关键字

valuetrue 时,此函数将调用 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); } } }