Object reference woe?

Hi everyone,

Every time I try to run my game, I get this error: " Object reference not set to an instance of an object". Unity says that the error is being caused by this piece of code (at the bottom), but I can’t see what’s going wrong. There is only one game object referred to in the code, and I did declare it and set it to something.

Thank in advance for your brilliant suggestions and fixed code that I’m sure you’re going to send me!
The Code:

var dayBrightness : float;
var nightBrightness : float;
var dayColour : Color;
var nightColour : Color;
var sun : GameObject;

private var nightDayRatio : float;

sun = new GameObject ("sun");
sun.GameObject.AddComponent ("light");
sun.light.type = LightType.Directional;

function Update () {	
	
//________________________________________________________
	
	if (Time.minutes >= 0 && Time.minutes < 2) {
		//night to day process
		sun.light.intensity = ((Time.seconds + (Time.minutes * 60)) * ((dayBrightness-nightBrightness)/120) ) + nightBrightness;
		Time.state = "Night to Day";
		nightDayRatio = (Time.seconds+(Time.minutes*60.0))/120.0;
		RenderSettings.fogColor = Color.Lerp(nightColour, dayColour, nightDayRatio);
	}
	
	//___________________________________
		
	if (Time.minutes >= 2 && Time.minutes < 10) {
		//day state
		Time.state = "Day";
		sun.light.intensity = dayBrightness;
		RenderSettings.fogColor = dayColour;
	}
	
	//___________________________________
	
	if (Time.minutes >= 10 && Time.minutes < 12) {
		//day to night process
		sun.light.intensity = ((Time.seconds + (Time.minutes * 60)) * ((nightBrightness-dayBrightness)/120) ) + dayBrightness;
		nightDayRatio = (Time.seconds+(Time.minutes*60.0))/120.0;
		RenderSettings.fogColor = Color.Lerp(dayColour, nightColour, nightDayRatio);
		Time.state = "Day to Night";

	}
	
	//___________________________________
	
	if (Time.minutes >= 12 && Time.minutes < 20) {
		//night state
		Time.state = "Night";
		sun.light.intensity = nightBrightness;
		RenderSettings.fogColor = nightColour;
	}
}

Make sure that the object “sun” do really exist.

function Update () 
{  
    if(sun != null)
    { 
        //________________________________________________________
        if (Time.minutes >= 0 && Time.minutes < 2) {
           //night to day process
           sun.light.intensity = ((Time.seconds + (Time.minutes * 60)) * ((dayBrightness-nightBrightness)/120) ) + nightBrightness;
           Time.state = "Night to Day";
           nightDayRatio = (Time.seconds+(Time.minutes*60.0))/120.0;
           RenderSettings.fogColor = Color.Lerp(nightColour, dayColour, nightDayRatio);
        }

        //___________________________________

        if (Time.minutes >= 2 && Time.minutes < 10) {
           //day state
           Time.state = "Day";
           sun.light.intensity = dayBrightness;
           RenderSettings.fogColor = dayColour;
        }

        //___________________________________

        if (Time.minutes >= 10 && Time.minutes < 12) {
           //day to night process
           sun.light.intensity = ((Time.seconds + (Time.minutes * 60)) * ((nightBrightness-dayBrightness)/120) ) + dayBrightness;
           nightDayRatio = (Time.seconds+(Time.minutes*60.0))/120.0;
           RenderSettings.fogColor = Color.Lerp(dayColour, nightColour, nightDayRatio);
           Time.state = "Day to Night";

        }

        //___________________________________

        if (Time.minutes >= 12 && Time.minutes < 20) {
           //night state
           Time.state = "Night";
           sun.light.intensity = nightBrightness;
           RenderSettings.fogColor = nightColour;
        }
    }
}

Good luck!