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

Material.SetKeyword

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

声明

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

参数

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

描述

设置此材质的局部着色器关键字的状态。

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

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