2017-10-13 11 views
1

からアクセスする方法シェーダのプロパティを変更するスライダで簡単なUIを作成したいと考えています。シェーダのプロパティの範囲をC#

私はこのようなシェーダで宣言されたいくつかのプロパティがあります。

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

をしかし性質は異なる範囲を持ち、そしてスライダーはプロパティの数に基づいて動的に作成されます。

上記のシェーダプロパティの範囲にアクセスする方法があるかどうかを知りたいので、スライダに最大値と最小値を設定できます。

+0

この機能をUnityEditor内でのみ実行するか(これは実際に可能なはずです)、ゲーム自体で行いますか(その場合は、受け入れられる回答は正しい) –

答えて

2

いいえ。これは不可能です。 C#からRange (min, max)の範囲の最小値と最大値にアクセスすることはできません。あなたは2つのオプションがあります:

.Hard-code定数変数にC#からの最小値を指定します。それらがRange (min, max)機能の値と一致することを確認してください。

.Hard-codeシェーダー自体からの最小値、最大値はHideInInspectorを使用して読み込みが必要なため、インスペクタから隠すことができます。

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

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

あなたは今Material.GetFloat機能をfloatとしてのC#からそれらを読むことができます。それらがRange (min, max)機能の値と一致することを確認してください。