返回介绍

Material.GetTag 获取标签

发布于 2019-12-18 15:37:58 字数 2865 浏览 910 评论 0 收藏 0

JavaScript => public function GetTag(tag: string, searchFallbacks: bool, defaultValue: string = “”): string;
JavaScript => public function GetTag(tag: string, searchFallbacks: bool, defaultValue: string = “”): string;
C# => public string GetTag(string tag, bool searchFallbacks, string defaultValue = “”);
C# => public string GetTag(string tag, bool searchFallbacks, string defaultValue = “”);

Description 描述

Get the value of material's shader tag.

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

If the material's shader does not define the tag, defaultValue is returned.

如果材质的着色器未定义标签,则返回默认值。

If searchFallbacks is true then this function will look for tag in all subshaders and all fallbacks. If seachFallbacks is false then only the currently used subshader will be queried for the tag.

如果 searchFallbacks 是true此函数将查找所有的subshader和所有的后备标签。如果 seachFallbacks 是false此函数仅在当前使用的subshader中查询标签。

Using GetTag without searching through fallbacks makes it possible to detect which subshader is currently being used: add a custom tag to each subshader with different value, and query the value at run time. For example, Unity water uses this function to detect when the shader falls back to non-reflective one, and turns off reflection camera in that case.

使用没有后备搜索的GetTag,检测当前正在使用的subshader: 将一个自定义的标签添加到每个具有不同的值的subshader和查询在运行时的值。例如unity的水使用这个函数来检测着色器何时将退回无反射,并使用此函数在这种情况下关闭反射相机。

JavaScript:

// Attach this to a gameObject that has a renderer.
 
var materialTag = "RenderType";
 
function Start() {
	var rend = GetComponent.<Renderer>();
	var result : String = 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);
}

C#:

using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {
    public 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);
    }
}

Material

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文