public override void OnEnable()
 {
     targetMat                   = (Material)target;
     colorDeficiency             = (ColorDeficiencyType)((int)targetMat.GetFloat("_Deficiency"));
     targetMatAsArray            = new UnityEngine.Object[] { targetMat };
     materialPropErrorTexture    = GetMaterialProperty(targetMatAsArray, "_ErrorTex");
     materialPropErrorStrength   = GetMaterialProperty(targetMatAsArray, "_ErrorStrength");
     materialPropErrorBlinkSpeed = GetMaterialProperty(targetMatAsArray, "_ErrorBlinkSpeed");
 }
    public override void OnInspectorGUI()
    {
        if (!isVisible)
        {
            return;
        }

        colorDeficiency = (ColorDeficiencyType)EditorGUILayout.EnumPopup("Color Deficiency", colorDeficiency);
        targetMat.SetFloat("_Deficiency", (float)((int)colorDeficiency));

        EditorGUILayout.Space();

        base.DefaultShaderProperty(materialPropErrorTexture, "Error Texture");
        base.DefaultShaderProperty(materialPropErrorStrength, "Error Strength");
        base.DefaultShaderProperty(materialPropErrorBlinkSpeed, "Error Blink Speed");
    }
    void Update()
    {
        if (selectedDeficiency != currentDeficiency)
        {
            if (material == null)
            {
                Debug.Log("ColorblindSimulationImageEffect:: Cannot change deficiency type, no material set.");
                selectedDeficiency = currentDeficiency;
                return;
            }

            if (!material.HasProperty("_Deficiency"))
            {
                Debug.Log("ColorblindSimulationImageEffect:: The set material is not compatible with this script.");
                selectedDeficiency = currentDeficiency;
                return;
            }

            material.SetInt("_Deficiency", (int)selectedDeficiency);
            currentDeficiency = selectedDeficiency;
        }
    }