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;
}
}