Как получить доступ к диапазону свойств шейдера из C#

Я хотел бы сделать простой интерфейс с ползунками, которые изменяют свойства в моем шейдере.

У меня есть несколько свойств, объявленных в шейдере, как это:

name ("display name", Range (min, max)) = number

но свойства имеют разные диапазоны, и ползунки создаются динамически в зависимости от количества свойств.

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

1 ответ

Решение

Нет Это невозможно. Вы не можете получить доступ к минимальным и максимальным значениям диапазона в Range (min, max) из C#. У вас есть два варианта:

1. Жесткий код минимальных, максимальных значений из C# в постоянной переменной. Убедитесь, что они соответствуют значениям в Range (min, max) функция.

2. Хард-код минимальных, максимальных значений из самого шейдера, затем используйте HideInInspector, чтобы скрыть их от Инспектора, так как вам нужно только прочитать их.

[HideInInspector]
min("Min", Float) = 0

а также

[HideInInspector]
max("Max", Float) = 1

Теперь вы можете читать их из C# как float с Material.GetFloat функция. Убедитесь, что они соответствуют значениям в Range (min, max) функция.

Другие вопросы по тегам