private void Update()
 {
     if (colorState == ColorChangeState.show)
     {
         n += TextAnimationSpeed;
         Narration.color = Color.Lerp(Narration.color, narrationColor, n);
         if (Narration.color.a == 1)
         {
             colorState = ColorChangeState.sustain;
             n          = Time.time;
         }
     }
     else if (colorState == ColorChangeState.sustain)
     {
         if (Time.time > n + showForSeconds)
         {
             colorState = ColorChangeState.hide;
             n          = 0;
         }
     }
     else if (colorState == ColorChangeState.hide)
     {
         if (Narration.color.a > 0)
         {
             n += TextAnimationSpeed;
             Narration.color = Color.Lerp(Narration.color, Color.clear, n);
         }
     }
 }
    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        EditorGUILayout.PropertyField(colorChangeState_Prop);

        ColorChangeState CCS = (ColorChangeState)colorChangeState_Prop.enumValueIndex;

        switch (CCS)
        {
        case ColorChangeState.Single:
            EditorGUILayout.ColorField(Color.white);     //Start Color
            break;

        case ColorChangeState.Gradient:
            EditorGUILayout.ColorField(Color.white);     //Start Color
            EditorGUILayout.ColorField(Color.white);     //End COlor
            EditorGUILayout.IntSlider(colorLerpDivider_Prop, 0, 1, new GUIContent("colorLerpDivider"));
            break;

        case ColorChangeState.None:
            break;
        }

        serializedObject.ApplyModifiedProperties();
    }
 public override void NarrateInteraction(bool succeeded)
 {
     Narration.color = Color.clear;
     colorState      = ColorChangeState.show;
     if (succeeded)
     {
         Narration.text = narrationObject.RandomTextSuccess();
     }
     else
     {
         Narration.text = narrationObject.RandomTextFail();
     }
 }