ComputeShader.SetKeyword
Declaration
public void SetKeyword(ref Rendering.LocalKeyword keyword, bool value);Параметры
| Параметр | Описание |
|---|---|
| ключевое слово | Ключевое слово LocalKeyword для включения или отключения. |
| значение | Требуемое состояние ключевого слова. |
Описание
Задаёт состояние локального ключевого слова шейдера для этого вычислительного шейдера.
Ключевые слова шейдера определяют, какие варианты шейдера 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); } } }
Дополнительные ресурсы: Варианты шейдеров и ключевые слова, LocalKeyword, GlobalKeyword, EnableKeyword, DisableKeyword, keywordSpace, IsKeywordEnabled, enabledKeywords, shaderKeywords.