Unity 6.3
0 онлайн 66 гостей 3 в системе
Вход

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); } } }