#unity3d #shader
#unity3d #шейдер
Вопрос:
Я очень новичок в программировании шейдеров, и мне было бы интересно модифицировать urp lit shader для поддержки настройки свойств в объектах с помощью MaterialPropertyBlock во время выполнения.
Цель состоит в том, чтобы несколько объектов из одного и того же материала были «тонированы» в разные цвета для каждого.
Спасибо!
Ответ №1:
Я не разбираюсь в программировании шейдеров, но если вы хотите, чтобы несколько объектов, совместно использующих материал, были окрашены в разные цвета, может сработать такой сценарий :
public class Tint : MonoBehaviour
{
public Color TintColor;
[Range(0,1)]
public float TintIntensity = 0.5f;
private void OnEnable()
{
Material material = GetComponent<MeshRenderer>().material;
material.color = Color.Lerp(material.color,TintColor,TintIntensity);
}
}
Комментарии:
1. Это приведет к утечке одного материального объекта за вызов. Вы должны использовать MaterialPropertyBlocks: docs.unity3d.com/ScriptReference/MaterialPropertyBlock.html