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

Material.DisableKeyword

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

声明

public void DisableKeyword(ref Rendering.LocalKeyword keyword);

声明

public void DisableKeyword(string keyword);

参数

keyword 要禁用的 LocalKeyword
keyword 要禁用的 LocalKeyword 的名称。

描述

为该材质禁用本地着色器关键字。

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

如果您传入一个 LocalKeyword,而它在该材质所用着色器的 Shader.keywordSpace 中不存在,则此函数不会产生任何效果。如果您传入一个字符串,而 name 为该字符串的 LocalKeyword 在该材质所用着色器的 Shader.keywordSpace 中不存在,则此函数不会产生任何效果。

采用字符串作为参数的该函数版本比采用 LocalKeyword 的版本速度更慢。如果您多次调用此函数,最佳做法是创建一个 LocalKeyword 结构体,将其缓存并使用它。

注意: LocalKeyword 是针对单个 ShaderComputeShader 实例的。您不能将其与其他 ShaderComputeShader 实例一起使用,即使它们声明了具有相同名称的关键字也是如此。

以下示例创建了一个名为 EXAMPLE_FEATURE_ONLocalKeyword 结构体,并将其缓存。它提供了启用和禁用它的函数。

using UnityEngine;
using UnityEngine.Rendering;

public class MaterialKeywordExample : MonoBehaviour { public Material material; private LocalKeyword exampleFeatureKeyword;

void Start() { // Get the instance of the Shader class that this material uses var shader = material.shader;

// Create and cache the LocalKeyword exampleFeatureKeyword = new LocalKeyword(shader, "EXAMPLE_FEATURE_ON"); }

public void EnableExampleFeature() { material.EnableKeyword(exampleFeatureKeyword); }

public void DisableExampleFeature() { material.DisableKeyword(exampleFeatureKeyword); } }