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