Make color pulse every 2 seconds

Hi guys,

I’m pretty new to unity and I’m having a lot of trouble trying to get this code to work how I want it. Here is what I am trying to acheive:
An object that starts at 100% alpha then fades out for 1 second
While it is not visible, the color is changed
It then gets set back to 100% and fades out for 1 second again

My aim is to creating a pulsating color effect.

I found this from another answer which lerps through the colors, but I cant figure out how to get it to my desired result. Any help would be appreciated

void Start() {
	colourStart = new Color(Random.value, Random.value, Random.value);
	colourEnd = new Color(Random.value, Random.value, Random.value);
	//StartCoroutine (changeAlpha ());

}

void Update () {

	//transform.localScale = new Vector3 (0, 0, 0);
	// Blend towards the current target colour
	i += Time.deltaTime*rate;
	this.GetComponent<Renderer>().material.color = Color.Lerp (colourStart, colourEnd, i);

	// If we've got to the current target colour, choose a new one
	if(i >= 1) {
		i = 0;
		colourStart = this.GetComponent<Renderer> ().material.color;
		colourEnd = new Color(Random.value, Random.value, Random.value);
	}
}

If I understood correctly, try this:

 private Renderer renderer ;
 void Start() {
     colourEnd = new Color(Random.value, Random.value, Random.value);
     colourStart = colourEnd ;
     colourEnd.a = 0 ;
     renderer = GetComponent<Renderer>() ;
 }
 void Update () {
     // Blend towards the current target colour
     i += Time.deltaTime*rate;
     renderer.material.color = Color.Lerp (colourStart, colourEnd, Mathf.PingPong(i * 2, 1) );
     // If we've got to the current target colour, choose a new one
     if(i >= 1) {
         i = 0;
         colourEnd = new Color(Random.value, Random.value, Random.value);
         colourStart = colourEnd ;
         colourEnd.a = 0 ;
     }
 }

Sorry I explained badly before. At the moment the code is just smoothly going from one colour to the other, but I’d like it to do a quick pulse where you see a flash of the colour and then it fades out, changes colour and flashes a new colour again.

Each colour is changing at the right time now but unfortuneately its changing abruptly and isnt fading out after the colour shows. Is there a way to get it so that once the colour shows, it starts to fade to 0, and once it is invisible the next colour shows up and starts to fade out etc? Thanks for your help!!

Hey there, its working for me now! Thanks a lot for your help!