Arktoon-Shadersに独自のカスタムプロパティを追加する

Arktoon-Shaders に独自のカスタムプロパティを追加する方法です。

環境

Unity 2018.4.20f1
Arktoon-Shaders バージョン1.0.2.6

シェーダーにプロパティの追加

プロパティを追加したいシェーダーのPropertiesに追記します。
例: OpaqueにCustomというプロパティの追加

Shader "arktoon/Opaque" {
   Properties {
       // Custom Property
       _Custom ("Custom", Float) = 0.0  
       // 以下略
   }
}

インスペクタに追加したプロパティを表示する

Arktoon-ShadersではCustomEditorが用いられており、ArktoonInspector というクラスでインスペクタに表示するプロパティ一覧の定義が行われています。
追加したカスタムプロパティをInspectorに表示するためにはこちらのファイルも更新する必要があります。

具体的には下記のような追記をします

public class ArktoonInspector : ShaderGUI
{
    MaterialProperty Custom;
    
    public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] props)
    {
        // 略 //
        Custom = FindProperty("_Custom", props, false);
        
        EditorGUI.BeginChangeCheck() {
            UIHelper.ShurikenHeader("Custom");
            UIHelper.DrawWithGroup(() => {
                materialEditor.ShaderProperty(Custom, "Custom");
			});
        }
        
        // 略 //
    }
}

ポイントとしては、
①MaterialProperty のインスタンス追加と生成
②MaterialProperty に対応するGUIの描画処理追加
の2点が必要になります。

Inspectorにカスタムプロパティが表示されれば完了です!

画像1

まとめ

Arktoon-Shadersは開発終了してしまいましたが、個人的にはまだ利用機会があるので備忘録的にまとめさせていただきました。
プロパティ追加にはひと手間必要ですが、慣れてしまえば楽にできますし、カスタムエディタも使いやすくて便利ですね!

いいなと思ったら応援しよう!