using UnityEngine;
|
|
using UnityEditor;
|
|
[CustomEditor(typeof(RadiusBlur))]
|
|
public class RadiusBlurEditor : Editor
|
|
{
|
|
RadiusBlur radiusBlur;
|
|
|
|
public float centerX = 0.5f;
|
|
public float centerY = 0.5f;
|
|
[Range(0f, 0.03f)]
|
|
public float radiusOffset = 0;
|
|
[Range(1, 30)]
|
|
public int iteration = 1;
|
|
bool first_loaded = true;
|
|
public override void OnInspectorGUI()
|
|
{
|
|
radiusBlur = target as RadiusBlur;
|
|
ShowRadiusData();
|
|
first_loaded = false;
|
|
}
|
|
|
|
void ShowRadiusData()
|
|
{
|
|
radiusBlur.radius_material = EditorGUILayout.ObjectField("径向模糊材质", radiusBlur.radius_material, typeof(Material), true) as Material;
|
|
|
|
Vector3 radius_data = radiusBlur.radius_data;
|
|
centerX = EditorGUILayout.Slider("径向模糊中心X", radius_data.x, 0f, 1f);
|
|
centerY = EditorGUILayout.Slider("径向模糊中心Y", radius_data.y, 0f, 1f);
|
|
radiusOffset = EditorGUILayout.Slider("偏移范围(0~0.03)", radius_data.z, 0.0f, 0.03f);
|
|
iteration = EditorGUILayout.IntSlider("迭代次数Iteration", radiusBlur.iteration, 1, 30);
|
|
|
|
if(first_loaded ||
|
|
radius_data.x != centerX ||
|
|
radius_data.y != centerY ||
|
|
radius_data.z != radiusOffset ||
|
|
radiusBlur.iteration != iteration)
|
|
{
|
|
radiusBlur.iteration = iteration;
|
|
radiusBlur.radius_data = new Vector3(centerX, centerY, radiusOffset);
|
|
}
|
|
}
|
|
|
|
void Print(string s)
|
|
{
|
|
Debug.Log(s);
|
|
}
|
|
}
|