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

Material.GetTag

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

声明

public string GetTag(string tag, bool searchFallbacks);

声明

public string GetTag(string tag, bool searchFallbacks, string defaultValue);

描述

获取材质的着色器标签的值。

如果材质的着色器没有定义标签,则返回 defaultValue

如果 searchFallbackstrue,则此函数将在所有子着色器和所有回退中查找标签。如果 searchFallbacksfalse,则只查询当前使用的子着色器以查找标签。

使用不搜索回退的 GetTag 可以检测当前使用的子着色器:向每个子着色器添加一个具有不同值的自定义标签,并在运行时查询该值。例如,Unity 水使用此函数来检测着色器何时回退到非反射着色器,并在这种情况下关闭反射相机。

using UnityEngine;

public class Example : MonoBehaviour { // Attach this to a gameObject that has a renderer.

string materialTag = "RenderType";

void Start() { Renderer rend = GetComponent<Renderer>(); string result = rend.material.GetTag(materialTag, true, "Nothing");

if (result == "Nothing") { Debug.LogError(materialTag + " not found in " + rend.material.shader.name); } else { Debug.Log("Tag found!, its value: " + result); } } }