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); } }