Smoothly Fade in a texture

Hi I am trying to produce a Fade in effect and refine it so that I can fade in a texture alpha using exact increments.

Im mostly there and it seems to make sense however when I use the script to effect the objects texture nothing happens to it’s alpha it just automatically pops in at full opacity instead of gradually raising the opacity from 0 - 1.

Here is my code so far…

using UnityEngine;
using System.Collections;

public class Environmental_FX_trigger : MonoBehaviour {

GameObject environmental_FX_trigger;
GameObject new_background_plane;
GameObject blur_background_plane;


public float Fade_start_Value;

//public float Fade_end_Value = 1;
//public float current_Value;
void Awake ()
	
{
	environmental_FX_trigger = GameObject.Find("special_FX/environmental_FX_trigger");
	new_background_plane = GameObject.Find("special_FX/environment_background_grp/new_background_plane");
	blur_background_plane = GameObject.Find("special_FX/environment_background_grp/blur_background_plane");
	
	blur_background_plane.SetActiveRecursively(true);
}



  	public void Wait_Fade() {
	StartCoroutine(wait());
	}

	private IEnumerator wait()
	{
		//x starts at zero - next - while x is less than 20 do stuff - next - repeat the "for loop" equation.
		for(int x = 0; x < 20; x++)
		{
			//wait for one second and then add 1 to the Fade_start_Value by the specified increment. 
			yield return new WaitForSeconds(1);
			Fade_start_Value += 0.1f;	
			
			//Declare an instance of the objects color value 
			//Plugin in a numerical increment into the new value's alpha channel. 
			//Then make the original objects color value equal to the instanced value.
			Color fadeColour = blur_background_plane.renderer.material.color;
			fadeColour.a = Fade_start_Value;
			blur_background_plane.renderer.material.color = fadeColour;
		
		
		}
		//Keep the Faade_start_Value at 0 if the Couritine hasn't been activated.
		Fade_start_Value = 0;
		}




void OnTriggerEnter (Collider environmental_FX_trigger)
	
{
	//  1. When entering the trigger change blur texture over time (fade in).
	Wait_Fade();
	
	print("IN TRIGGER NOW!!!!!");
	blur_background_plane.SetActiveRecursively(true);

}

void OnTriggerExit (Collider environmental_FX_trigger)
	
{
	//  1. When entering the trigger change blur texture over time (fade out).
	print("OUT TRIGGER NOW!!!!!");
}
/*
//----------------------------------------
  if (Patient_choice_GUI_Skin != null)
    {
		if(showPatientChoiceGUI)
			{	
        	GUI.skin = Patient_choice_GUI_Skin;
			
			Color patientChoice_newAlpha = GUI.color;
			patientChoice_newAlpha.a = patientChoice_thisColor * patientChoice_InTransition;
			GUI.color = patientChoice_newAlpha;
			print("working");
			{	
			if(Time.time < 6f)
			{
				patientChoice_InTransition = 0.2f * Time.time;
			}
			else if(Time.time > 6f)
			{
				patientChoice_InTransition = 1f;
			}
			}	

//----------------------------------------
*/

}

Where am I going wrong?

One reason could be that your Coroutine is triggered several times. Since you don’t reset Fade_start_Value at the beginning of your coroutine, each simultaneously active coroutine adds 0.1 to the alpha each second.

Do you get your “IN TRIGGER NOW!!!” message once or several times?