Material.GetTag
Declaration
public string GetTag(string tag, bool searchFallbacks);public string GetTag(string tag, bool searchFallbacks, string defaultValue);Описание
Получить значение тега шейдера материала.
Если шейдер материала не определяет метку, defaultValue возвращается.
Если searchFallbacks является true тогда эта функция будет искать тег во всех subshaders и во всех fallbacks. Если searchFallbacks является false тогда только используемый в данный момент subshader будет запрошен для тега.
Использование 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); } } }