はじめに
シェーダを実装する時に MaterialPropertyDrawer を使用することで
Inspector の表示をカスタマイズすることができます
MaterialPropertyDrawer は自作することができますが
今回は Unity が標準で用意しているモノをいくつか紹介していきます
Toggle
[Toggle(RED)] _Invert("Red ?" , Float) = 0
- float 値を 1 と 0 で切り替えるチェックボックスを表示します
- シェーダキーワードの有効/無効を切り替えることも可能です
Enum
[Enum(ZERO, 0, HALF, 128, FULL, 255)] _Red("Red", Int) = 128
- float 値を選択できるポップアップメニューを表示します
- 列挙型の名前を指定するか、表示名と値のペアをカンマ区切りで設定することで使用します
- 表示名と値のペアを指定する場合、最大 7 つまで指定できます
KeywordEnum
[KeywordEnum(RED, GREEN, BLUE)] _Mode("Color Type", Float) = 0
- 有効化したいシェーダキーワードをポップアップメニューから選択できます
- シェーダキーワードは大文字の「【プロパティ名】_【表示名】」で有効になります
- シェーダキーワードは最大 9 つまで指定できます
PowerSlider
[PowerSlider(2.5)] _Red("Red", Range(0, 1)) = 1
- 非線形のカーブに従って値を設定するスライダーを表示します
IntRange
[IntRange] _Red("Red", Range(0, 255)) = 128
- 指定された範囲の値を設定できる int 型のスライダーを表示します
Space
- シェーダプロパティの上部にスペースを導入します
_Red("Red", Float) = 0 [Space] _Green("Green", Float) = 0 [Space(50)] _Blue("Blue", Float) = 0
Header
- シェーダプロパティの上部にヘッダーテキストを表示します
[Header(Color 1)] _Red1("Red 1", Float) = 0 _Green1("Green 1", Float) = 0 _Blue1("Blue 1", Float) = 0 [Header(Color 2)] _Red2("Red 2", Float) = 0 _Green2("Green 2", Float) = 0 _Blue2("Blue 2", Float) = 0