keyword | 要启用或禁用的LocalKeyword。 |
value | 所需的关键字状态。 |
设置此材质的局部着色器关键字的状态。
着色器关键字决定 Unity 使用哪些着色器变体。有关使用局部着色器关键字和全局着色器关键字以及它们如何交互的信息,请参阅使用 C# 脚本的着色器关键字。
当value
为true
时,此函数调用EnableKeyword。否则,它调用DisableKeyword。
如果LocalKeyword不存在于此材质所用着色器的Shader.keywordSpace中,则此函数无效。
以下示例创建并缓存一个LocalKeyword
,并提供一个函数来切换其状态。
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 ToggleExampleFeature() { // Get the current state of the local keyword bool state = material.IsKeywordEnabled(exampleFeatureKeyword);
// Toggle the state material.SetKeyword(exampleFeatureKeyword, !state); } }