BZShaderGUI 提供了两个虚函数,便于用于继承并进行绘制的自定义。
protected virtual void DrawTop(MaterialEditor materialEditor, MaterialProperty[] props)
protected virtual void DrawBottom(MaterialEditor materialEditor, MaterialProperty[] props)
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
namespace BZTA
{
public class CustomGUI : BZShaderGUI
{
protected override void DrawTop(MaterialEditor materialEditor, MaterialProperty[] props)
{
var customProperty = FindProperty("_DrawOnTop", props);
if (customProperty != null)
{
GUILayout.BeginVertical("box");
materialEditor.ShaderProperty(customProperty,"This Property Draw On Top");
GUILayout.Label("Some Custom Label or anything else");
GUILayout.EndVertical();
}
}
protected override void DrawBottom(MaterialEditor materialEditor, MaterialProperty[] props)
{
var customProperty = FindProperty("_DrawOnBottom", props);
if (customProperty != null)
{
GUILayout.BeginHorizontal("box");
materialEditor.ShaderProperty(customProperty,"This Property Draw On Top");
if(GUILayout.Button("CustomBtn"))
{
Debug.Log("you clicked the CustomBtn");
}
GUILayout.EndHorizontal();
}
}
}
}