コード例 #1
0
    /// <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
                                                                                              );
        }
    }