- Home /
Directional light not rotating more than 90 degrees.
Ok, so I am using a directional light with a cookie on it to simulate clouds moving across the terrain for a day/night cycle. It works fine, except at noon (when the directional lights x rotation reaches 90) the y and z rotations flip to 180 and the x rotation begins to decrease. This still causes the light to rotate properly, but the cookie then travels backwards. How can I keep it rotating on the x axis to 180 degrees? Or is there a better way to do clouds? Also if anyone knows a good way to switch out the skybox from a day to night, that's the next phase and any advice would be appreciated.
#pragma strict
var dayLength:float;
var curTimeCycle:float;
var sunUp:float;
var sunDown:float;
var sun:GameObject;
var moon:GameObject;
var sunIntensity:float;
var sunFade:float;
function Start ()
{
print(((sunDown-sunUp)*sunFade));
}
function Update ()
{
sun.transform.rotation.y=0;
sun.transform.rotation.z=0;
curTimeCycle+=Time.deltaTime*1;
//set the sun for sunup
if((curTimeCycle<sunUp))
{
sun.transform.localRotation = Quaternion(0,0,0,0);
}
//set the sun for sundown
else if((curTimeCycle>sunDown))
{
sun.transform.localRotation = Quaternion(180,0,0,0);
sun.light.intensity=0;
}else{
sun.transform.Rotate(Vector3((180/(sunDown-sunUp))*Time.deltaTime,0,0), Space.World);
if(curTimeCycle<(sunUp+((sunDown-sunUp)*sunFade)))
{
sun.light.intensity+=((sunIntensity/((sunDown-sunUp)*sunFade))*Time.deltaTime);
}else if(curTimeCycle>(sunDown-((sunDown-sunUp)*sunFade)))
{
sun.light.intensity-=((sunIntensity/((sunDown-sunUp)*sunFade))*Time.deltaTime);
}
}
if(curTimeCycle>dayLength)
{
curTimeCycle = 0.0;
}
}
Your answer
Follow this Question
Related Questions
Flip over an object (smooth transition) 3 Answers
Simulated Sun Position 1 Answer
Light Cookie not in Inspector 0 Answers
Adding a 45º rotation to a script 2 Answers
How do I check for a negative value in eulerAngles? It is not working 0 Answers