Получает тэг шейдера материала.
Если в шейдере материала не определен тэг, возвращает defaultValue
.
Если searchFallbacks
true
, то эта функция будет искать тэг во всех субшейдерах
и всех откатах. Если seachFallbacks
false
, используется только текущий субшейдер
для запроса по тэгу.
Использование GetTag
без поиска через "откаты" делает возможным определение
используемых в данный момент субшейдеров: добавьте пользовательский тэг для каждого субшейдера с разным значением,
и делайте запрос значения во время исполнения. Например, вода в Unity Pro использует эту функцию
для определения когда шейдер откатывается к не отражающему и выключает отражающую камеру
в этом случае.
// 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); }
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); } }