125 lines
3.5 KiB
C#
125 lines
3.5 KiB
C#
using UnityEngine;
|
|
using UnityEditor;
|
|
using BF;
|
|
|
|
namespace BFEditor
|
|
{
|
|
[CustomEditor(typeof(PostEffectBehaviour))]
|
|
public class PostEffectBehaviourInspector : Editor
|
|
{
|
|
PostEffectBehaviour peb;
|
|
PostEffectType type;
|
|
|
|
int vividIterations;
|
|
float vividIntensity;
|
|
float vividThreshold;
|
|
float vividSoftThreshold;
|
|
|
|
Material fxaaMat;
|
|
|
|
float blurRadius;
|
|
Vector2 radialCenter;
|
|
|
|
private void OnEnable()
|
|
{
|
|
peb = target as PostEffectBehaviour;
|
|
type = peb.EffectType;
|
|
}
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
base.OnInspectorGUI();
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
type = (PostEffectType)EditorGUILayout.EnumFlagsField("effect type", type);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
peb.SetPostEffectType(type);
|
|
}
|
|
|
|
if ((type & PostEffectType.VividBloom) != 0)
|
|
{
|
|
DrawVividBloom();
|
|
}
|
|
|
|
if ((type & PostEffectType.Fxaa) != 0)
|
|
{
|
|
DrawFxaa();
|
|
}
|
|
|
|
if ((type & PostEffectType.RadialBlur) != 0)
|
|
{
|
|
DrawRadialBlur();
|
|
}
|
|
}
|
|
|
|
void DrawVividBloom()
|
|
{
|
|
EditorGUILayout.LabelField("Vivid Bloom: ");
|
|
EditorGUI.BeginChangeCheck();
|
|
vividIterations = peb.VividBloomEffect.Iterations;
|
|
vividIterations = EditorGUILayout.IntSlider("iterations", vividIterations, 1, 4);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
peb.VividBloomEffect.SetIterations(vividIterations);
|
|
}
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
vividIntensity = peb.VividBloomEffect.Intensity;
|
|
vividIntensity = EditorGUILayout.Slider("intensity", vividIntensity, 0.0f, 3.0f);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
peb.VividBloomEffect.SetIntensity(vividIntensity);
|
|
}
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
vividThreshold = peb.VividBloomEffect.Threshold;
|
|
vividThreshold = EditorGUILayout.Slider("threshold", vividThreshold, 0.0f, 10.0f);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
peb.VividBloomEffect.SetThreshold(vividThreshold);
|
|
}
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
vividSoftThreshold = peb.VividBloomEffect.SoftThreshold;
|
|
vividSoftThreshold = EditorGUILayout.Slider("softThreshold", vividSoftThreshold, 0.0f, 1.0f);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
peb.VividBloomEffect.SetSoftThreshold(vividSoftThreshold);
|
|
}
|
|
|
|
EditorGUILayout.Space();
|
|
}
|
|
|
|
void DrawFxaa()
|
|
{
|
|
EditorGUILayout.LabelField("Fxaa: ");
|
|
fxaaMat = peb.FxaaEffect.FxaaMaterial;
|
|
EditorGUILayout.ObjectField("fxaa material", fxaaMat, typeof(Material), true);
|
|
EditorGUILayout.Space();
|
|
}
|
|
|
|
void DrawRadialBlur()
|
|
{
|
|
EditorGUILayout.LabelField("RadialBlur: ");
|
|
EditorGUI.BeginChangeCheck();
|
|
blurRadius = peb.RadialBlurEffetc.BlurRadius;
|
|
blurRadius = EditorGUILayout.Slider("blurRadius", blurRadius, 0.0f, 1.0f);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
peb.RadialBlurEffetc.SetBlurRadius(blurRadius);
|
|
}
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
radialCenter = peb.RadialBlurEffetc.RadialCenter;
|
|
radialCenter = EditorGUILayout.Vector2Field("radialCenter", radialCenter);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
peb.RadialBlurEffetc.SetRadialCenter(radialCenter);
|
|
}
|
|
|
|
EditorGUILayout.Space();
|
|
}
|
|
}
|
|
}
|