/// <summary> /// Draw effect properties. /// </summary> public static void DrawEffectProperties(string shaderName, SerializedObject serializedObject) { bool changed = false; //================ // Effect material. //================ var spMaterial = serializedObject.FindProperty("m_EffectMaterial"); EditorGUI.BeginDisabledGroup(true); EditorGUILayout.PropertyField(spMaterial); EditorGUI.EndDisabledGroup(); //================ // Blur setting. //================ var spBlurMode = serializedObject.FindProperty("m_BlurMode"); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(spBlurMode); changed |= EditorGUI.EndChangeCheck(); // When blur is enable, show parameters. if (spBlurMode.intValue != (int)StaticBluredScreen.BlurMode.None) { EditorGUI.indentLevel++; EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Blur")); EditorGUI.indentLevel--; } // Set effect material. if (!serializedObject.isEditingMultipleObjects && spBlurMode.intValue == 0) { spMaterial.objectReferenceValue = null; } else if (changed || !serializedObject.isEditingMultipleObjects) { spMaterial.objectReferenceValue = StaticBluredScreen.GetOrGenerateMaterialVariant(Shader.Find(shaderName), (StaticBluredScreen.BlurMode)spBlurMode.intValue ); } }