Unity ShaderGraph / Проблема свойств материала с SetFloat - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть следующий скрипт, прикрепленный к кубу в сцене:

public class TestShaderGraph : MonoBehaviour 
{
    void Start() 
    {
        Material material = GetComponent<Renderer>().sharedMaterial;
        material.SetFloat("_Min", -.5f);
        material.SetFloat("_Max",  .5f);
    }
}

Вот график шейдера
Вот фактический результат создается при запуске сцены
Вот предполагаемый результат , полученный при ручном обновлении минимального и максимального значений для материала в инспекторе

У меня также есть легкий конвейер рендеринга, присоединенный внастройки графики.
Что мне здесь не хватает;Кто-нибудь сейчас почему значения не обновляются на материале?

Я также попытался вывести значения, используя:

material.GetFloat("_Min");
material.GetFloat("_Max");

, что фактически приводит к -0,5 и 0,5 соответственно, даже если это не показано на материале.

PSA: При написании этого вопроса я действительно нашел решение.
Я думал о том, чтобы не публиковать это, но, возможно, это поможет людям в будущем, которые также столкнулись с этой проблемой.

1 Ответ

0 голосов
/ 16 декабря 2018

Ошибка, которую я сделал, была на самом деле смехотворно простой.Имя свойств в графе шейдеров не является ссылкой на свойство.Ссылка - это поле с надписью «ссылка» на удивление.

редактировать: мне нужно инвестировать в резиновой утки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...